我ILookup< string, List<CustomObject> >从一些linq 得到了一个我做过的.
我现在想迭代结果:
foreach(IGrouping<string, List<CustomObject>> groupItem in lookupTable)
{
groupItem.Key; //You can access the key, but not the list of CustomObject
}
Run Code Online (Sandbox Code Playgroud)
我知道我必须歪曲a IGroupingas KeyValuePair,但现在我不确定如何正确访问它.
Ger*_*old 15
ILookup 是列表清单:
public interface ILookup<TKey, TElement> : IEnumerable<IGrouping<TKey, TElement>>
Run Code Online (Sandbox Code Playgroud)
因为IGrouping<TKey, TElement>是(实现)......
IEnumerable<TElement>
Run Code Online (Sandbox Code Playgroud)
...查找是
IEnumerable<IEnumerable<TElement>>
Run Code Online (Sandbox Code Playgroud)
你的情况TElement是同样的列表,所以你最终
IEnumerable<IEnumerable<List<CustomObject>>>
Run Code Online (Sandbox Code Playgroud)
这就是你如何循环客户:
foreach(IGrouping<string, List<CustomObject>> groupItem in lookupTable)
{
groupItem.Key;
// groupItem is <IEnumerable<List<CustomObject>>
var customers = groupItem.SelectMany(item => item);
}
Run Code Online (Sandbox Code Playgroud)
ILookup中的每个条目都是另一个条目 IEnumerable
foreach (var item in lookupTable)
{
Console.WriteLine(item.Key);
foreach (var obj in item)
{
Console.WriteLine(obj);
}
}
Run Code Online (Sandbox Code Playgroud)
编辑
一个简单的例子:
var list = new[] { 1, 2, 3, 1, 2, 3 };
var lookupTable = list.ToLookup(x => x);
var orgArray = lookupTable.SelectMany(x => x).ToArray();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9902 次 |
| 最近记录: |