public class TestClass { public TestClass(int id, string name) { Name = name; Id = id; } public string Name { get; private set; } public int Id { get; private set; } public string Tag { get; set; } public DateTime Time { get; set; } } private static void Main(string[] args) { List<TestClass> list = new List<TestClass>(); for (int i = 0; i < 5; i++ ) { TestClass t = new TestClass(i, Guid.NewGuid().ToString()); t.Tag = i%2 == 0?"Hello":"World"; list.Add(t); } var query = list .GroupBy(l=>l.Tag); Func<IEnumerable<IGrouping<string, TestClass>>, int[]> func = GetIds<string,TestClass>; func.BeginInvoke(query, null, null); Console.Read(); } private static int[] GetIds<T, U>(IEnumerable<IGrouping<T, U>> query) { List<int> ints = new List<int>(); foreach(var y in query) ints.Add(y.Count()); return ints.ToArray(); } }
I know that LINQ is not executed until the collection is iterated, but I just want to make sure that I can assume that it is still saved even if the request is passed to another async method.
source share