查询查找 Table 并转换为列表

Query Lookup Table and Convert to List

我正在使用 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();

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

ImagesKeyVector2。您需要获得 Vector2 才能键入您的查找。

var pins = Images[new Vector2(x, y)].ToList(); // normally returned as enumerable