keyvalue how example ejemplos create array c#

c# - how - Seleccione el valor de la lista de KeyValuePair



keyvaluepair c# ejemplos (4)

Si estás atascado con la Lista, puedes usar

myList.First(kvp => kvp.Key == 5).Value

O si desea usar un diccionario (que podría satisfacer sus necesidades mejor que la lista como se indica en las otras respuestas), puede convertir su lista en un diccionario fácilmente:

var dictionary = myList.ToDictionary(kvp => kvp.Key); var value = dictionary[5].Value;

¿Cómo puedo seleccionar el valor de la Lista de pares de valores clave en función de verificar el valor clave?

List<KeyValuePair<int, List<Properties>> myList = new List<KeyValuePair<int, List<Properties>>();

Aquí quiero conseguir el

list myList[2].Value when myLisy[2].Key=5.

¿Cómo puedo conseguir esto?


Si necesita usar la Lista de todos modos, usaría LINQ para esta consulta:

var matches = from val in myList where val.Key == 5 select val.Value; foreach (var match in matches) { foreach (Property prop in match) { // do stuff } }

Es posible que desee comprobar el partido para null.


Use Dictionary<int, List<Properties>> . Entonces puedes hacer

List<Properties> list = dict[5];

Como en:

Dictionary<int, List<Properties>> dict = new Dictionary<int, List<Properties>>(); dict[0] = ...; dict[1] = ...; dict[5] = ...; List<Properties> item5 = dict[5]; // This works if dict contains a key 5. List<Properties> item6 = null; // You might want to check whether the key is actually in the dictionary. Otherwise // you might get an exception if (dict.ContainsKey(6)) item6 = dict[6];


NOTA

La clase de diccionario genérica, introducida en .NET 2.0, usa KeyValuePair.

Es mejor que hagas uso de

Dictionary<TKey, TValue>.ICollection<KeyValuePair<TKey, TValue>>

y use el ContainsKey Method para verificar si la clave está ahí o no.

Ejemplo:

ICollection<KeyValuePair<String, String>> openWith = new Dictionary<String, String>(); openWith.Add(new KeyValuePair<String,String>("txt", "notepad.exe")); openWith.Add(new KeyValuePair<String,String>("bmp", "paint.exe")); openWith.Add(new KeyValuePair<String,String>("dib", "paint.exe")); openWith.Add(new KeyValuePair<String,String>("rtf", "wordpad.exe")); if (!openWith.ContainsKey("txt")) { Console.WriteLine("Contains Given key"); }

EDITAR

Para obtener valor

string value = ""; if (openWith.TryGetValue("tif", out value)) { Console.WriteLine("For key = /"tif/", value = {0}.", value); //in you case //var list= dict.Values.ToList<Property>(); }

en tu caso será

var list= dict.Values.ToList<Property>();