试图理解LINQ方法表示法
本文关键字:方法 表示 LINQ | 更新日期: 2023-09-27 18:21:52
我正在努力更好地理解LINQ方法符号。
假设我有一个数据表:
DataTable table = new DataTable("Products");
table.Columns.Add("ProductID", typeof(int));
table.Columns.Add("ProductName", typeof(string));
table.Columns.Add("Category", typeof(string));
table.Columns.Add("UnitPrice", typeof(decimal));
table.Columns.Add("UnitsInStock", typeof(int));
假设从数据表("产品")加载可变产品
var products = testDS.Tables["Products"].AsEnumerable();
所以我知道我可以进行以下查询:
var productNameGroups = words4.GroupBy(x => x.Field<string>("ProductName").Substring(0, 1)).Select(x => new { FirstLetter = x.Key, Words = x});
var productGroups = products.GroupBy(p => p.Field<string>("Category")).Select(x => new { Category = x.Key, Products = x });
我在掌握Select方法中的x键时遇到问题。我不知道它是如何设置的,也不知道什么时候可以/不能使用它。
x.Key
特定于处理GroupBy
方法的结果。
当你做这个
var res = someData.GroupBy(item => item.Property);
结果是IGrouping<K,V>
-键/值对中的IEnumerable
,其中Key
属性表示对项目进行分组的Property
的值。
由于在您的情况下,分组是在表示ProductName
或ProductCategory
的第一个字母的字符串上完成的,因此当您在查询返回的每个组中引用x.Key
时,就会得到该字符串。