首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ILookup上循环,访问值

在ILookup上循环,访问值
EN

Stack Overflow用户
提问于 2014-06-08 00:04:06
回答 3查看 15.1K关注 0票数 16

我从我做过的linq中得到了一个ILookup< string, List<CustomObject> >

现在我想迭代一下结果:

代码语言:javascript
复制
foreach(IGrouping<string, List<CustomObject>> groupItem in lookupTable)
{
    groupItem.Key; //You can access the key, but not the list of CustomObject
}

我知道我一定是把IGrouping误解为KeyValuePair了,但是现在我不确定如何正确地访问它。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-06-08 05:11:55

ILookup是一个列表列表:

代码语言:javascript
复制
public interface ILookup<TKey, TElement> : IEnumerable<IGrouping<TKey, TElement>>

所以因为IGrouping<TKey, TElement>是(实现的)..。

代码语言:javascript
复制
IEnumerable<TElement>

...a查找是

代码语言:javascript
复制
IEnumerable<IEnumerable<TElement>>

在本例中,TElement也是一个列表,因此您最终得到

代码语言:javascript
复制
IEnumerable<IEnumerable<List<CustomObject>>>

所以这就是你如何在客户之间循环:

代码语言:javascript
复制
foreach(IGrouping<string, List<CustomObject>> groupItem in lookupTable)
{
    groupItem.Key;
    // groupItem is <IEnumerable<List<CustomObject>>
    var customers = groupItem.SelectMany(item => item);
}
票数 19
EN

Stack Overflow用户

发布于 2014-06-08 00:09:34

ILookup中的每个条目都是另一个IEnumerable

代码语言:javascript
复制
foreach (var item in lookupTable)
{
    Console.WriteLine(item.Key);
    foreach (var obj in item)
    {
        Console.WriteLine(obj);
    }
}

编辑

一个简单的例子:

代码语言:javascript
复制
var list = new[] { 1, 2, 3, 1, 2, 3 };
var lookupTable = list.ToLookup(x => x);
var orgArray  = lookupTable.SelectMany(x => x).ToArray();
票数 9
EN

Stack Overflow用户

发布于 2019-11-11 01:08:24

我首先使用键创建一个枚举,我发现这样更容易理解。

代码语言:javascript
复制
IEnumerable<string> keys = lookupTable.Select(t => t.Key);
foreach(string key in keys)
{
    // use the value of key to access the IEnumerable<List<CustomObject>> from the ILookup
    foreach( List<CustomObject> customList in lookupTable[key] )
    {
        Console.WriteLine(customList);
    }        
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24099061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档