从C#查找中获取值

问题描述 投票:8回答:3

我对如何从C#查找结构中获取价值感兴趣。

示例:

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());

但是这也和上面一样。

请告知实现方法。

提前感谢。

c#-4.0 ienumerable lookup
3个回答
13
投票

那是因为查找项是一个集合。您可以看到查找的每个值,如下所示:


4
投票

“我认为这并不意味着您认为的意思。”


0
投票
int lookupValue = myLookup.Where(x => x.Key == "Test").SelectMany(x => x).FirstOrDefault())
© www.soinside.com 2019 - 2024. All rights reserved.