我对如何从C#查找结构中获取值(value)感兴趣。
例子:
var myLookup = (Lookup<string, int>)data.Rows.Cast<DataRow>().ToLookup(row => row["Name"], row => row["Id"]);
foreach (var myLookupItem in myLookup)
{
Debug.WriteLine("Name: " + myLookupItem.Key);
Debug.WriteLine("Id: " + myLookupItem.ToString());
}
问题是
myLookupItem.ToString()
不显示实际值,而是仅显示
System.Linq.Lookup2[System.String,System.Int32]
。稍后,我应该使用lambda获取查找值:
int lookupValue = myLookup.Where(x => x.Key == "Test").Select(x => x).FirstOrDefault());
但这也与上面相同。
请告知如何实现此目标。
提前致谢。
最佳答案
那是因为查找项是一个集合。您可以看到查找的每个值,如下所示:
foreach (var myLookupItem in myLookup)
{
Debug.WriteLine("Key: " + myLookupItem.Key);
foreach (var myLookupValue in myLookupItem)
{
Debug.WriteLine("Value: " + myLookupValue);
}
}