Tengo el siguiente código:
var tuple = new Tuple<string, string>("MyKey", "MyValue");
var list = new List<string>();
var str = tuple.ToString();
list.Add(str);
// str has the value "(MyKey, MyValue)"
Tengo un objeto predefinido donde necesito usar una lista de cadenas.
Decidí usar una Tupla, pero no estoy seguro de cómo puedo devolver el valor str a una Tupla.
¿Cómo puedo almacenar un valor clave en una Lista para poder usar lambda para consultarlo, p. por la llave?
3 respuestas
Todo este código:
var tuple = new Tuple<string, string>("MyKey", "MyValue");
var list = new List<string>();
var str = tuple.ToString();
list.Add(str);
// str has the value "(MyKey, MyValue)"
Podría ser reemplazado por un diccionario:
Dictionary<string, string> values = new Dictionary<string, string>();
values.Add("MyKey", "MyValue");
Luego, puede usar linq para consultar el diccionario si desea hacerlo:
value = values.Where(x => x.ContainsKey("MyKey"));
Puede obtener una lista con todas las claves de la siguiente manera:
List<string> keys = values.Keys;
Así que no es necesario tener una lista separada para eso.
Si desea una lista de cadenas con dos valores separados por un coma, el diccionario también lo hará:
List<string> keysValues = (from item in values
select item.Key + "," + item.Value).ToList();
Usa un diccionario.
var dictionary = new Dictionary<string, string>();
dictionary.Add("myKey", "myVal");
if (dictionary.ContainsKey("myKey"))
dictionary["myKey"] = "myVal1";
Le sugiero que use un Diccionario. Pero si realmente necesitas hacerlo de esta manera:
Para transformar de string
a Tuple
(suponiendo que la clave en sí misma nunca contendrá una coma + espacio):
var tuple = Tuple.Create("MyKey", "MyValue");
var list = new List<string>();
var str = tuple.ToString();
list.Add(str);
// str has the value "(MyKey, MyValue)"
Console.WriteLine(str);
int comma = str.IndexOf(", ");
string key = str.Substring(1,comma-1);
string valuee = str.Substring(comma+2,str.Length-key.Length-4);
var tuple2 = Tuple.Create(key, valuee);
// 'tuple2' is now equal to the orignal 'tuple'
Nuevas preguntas
c#
C # (pronunciado "see sharp") es un lenguaje de programación multi-paradigma de alto nivel, estáticamente tipado desarrollado por Microsoft. El código C # generalmente se dirige a la familia de herramientas y tiempos de ejecución .NET de Microsoft, que incluyen .NET Framework, .NET Core y Xamarin, entre otros. Use esta etiqueta para preguntas sobre el código escrito en las especificaciones formales de C # o C #.