我是编程新手,我用
创建了一个元组列表var tupleList = new List<Tuple<string, string>> { };
稍后在代码中,我想添加一个像
这样的元素tupleList.Add(string1,string2);
但是.Add不支持这个吗?
基本上,我正在经历一个循环并添加到元组,后来我想通过元组搜索一个示例字符串,所以我的第二个问题是如何搜索tupleList.Item1并获取所有对等于,例如string10?我看到了字典值的答案,但我可以为元组做同样的事吗?
var matches = tupleList.Where(pair => pair.Item1.Equals(string10))
.Select(pair => Item2.Key);
我不知道这是否有意义,这是原始代码:
var matches = dict.Where(pair => pair.Value == "abc")
.Select(pair => pair.Key);
答案 0 :(得分:4)
List<T>
没有任何特定的方法来处理元组。它适用于任何类型T
。如果要将新项目添加到列表,则应创建列表类型T
的项目并将其传递给列表。添加新元组:
tupleList.Add(Tuple.Create(string1,string2));
仅搜索过滤元组列表。如果要将结果作为结果,则不应使用Select
运算符投影元组:
var matches = tupleList.Where(pair => pair.Item1 == string10);
注意:我不喜欢元组的无意义名称Item1,Item2等,这很难理解。考虑创建具有描述性名称的属性的自定义类。
答案 1 :(得分:0)
我会说为什么为元组做同样的事情?
如果您使用元组来表示键值对,只需坚持键值对,这是字典包含的集合。如果你对一个超过2个值的行建模,我可能更喜欢强类型模型,你可以在LINQ查询中更明确。