2016-11-20 2 views
0

Ich verwende ILookup von System.Linq, um ein Wörterbuch zu erstellen, das mehr als Wert für einen Schlüssel verarbeiten kann. Was ich will, ist ein gegebenes Vector2 (als Schlüssel) und dann alle Werte als eine Liste oder ein Array, die diesen Schlüssel teilen.Abfrage-Lookup-Tabelle und in Liste konvertieren

Ich bin mit der Unity Vector2

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

i zunächst eine Liste haben

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

, die ich

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

mit füllen und dann ich wandeln es in ein ILookup mit

ILookup<Vector2, Image> Images = items.ToLookup(kvp => kvp.Key, kvp => kvp.Value); 

Dies scheint aber jetzt zu arbeiten später möchte ich die Werte für bestimmte Tasten finden ich versucht, mit

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

aber dies scheint nicht jemand eine Idee zu arbeiten, wie die Werte für eine bekommen Schlüssel als Liste?

Antwort

0

Die Key von Images ist eine Vector2. Sie müssen eine Vector2 erhalten, um in Ihre Suche einzugehen.

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

danke das hat funktioniert :) – MasterMind

Verwandte Themen