查询查找表并转换为列表

时间:2016-11-20 17:39:59

标签: c# linq list lookup

我正在使用System.Linq中的ILookup来创建一个可以处理键值以上的字典。我想要的是拥有一个给定的Vector2(作为键),然后将所有值作为共享该键的列表或数组。

我正在使用Unity Vector2

public struct Image
{
    public Vector2 pos19;
    public string url;
}

我首先有一个清单

var items = new List<KeyValuePair<Vector2, Image>>();

我用

填写
items.Add(new KeyValuePair<Vector2, Image>(intpos, img));

然后我使用

将其转换为Ilookup
ILookup<Vector2, Image> Images = items.ToLookup(kvp => kvp.Key, kvp => kvp.Value);

这似乎有效,但现在我想找到某些键的值 我尝试使用

var pins = Images.Where(kv => ((int)kv.Key.x == x && (int)kv.Key.y == y)).ToList();

但这似乎不起作用 任何人都知道如何将键的值作为列表获取?

1 个答案:

答案 0 :(得分:0)

Key的{​​{1}}是Images。您需要获取Vector2才能键入查找。

Vector2