在c#初始化之外的元组中添加元素
本文关键字:元组 添加 元素 初始化 | 更新日期: 2023-09-27 18:10:48
我是一个编程新手,我用
创建了一个元组列表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);
List<T>
没有任何处理元组的特定方法。它适用于任何类型的T
。如果你想添加一个新的项目到list,你应该创建一个list的类型为T
的项目,并把它传递给list。添加新的元组:
tupleList.Add(Tuple.Create(string1,string2));
搜索只需过滤元组列表。如果您想获得它们作为结果,则不应该使用Select
操作符投射元组:
var matches = tupleList.Where(pair => pair.Item1 == string10);
注意:我不喜欢元组,因为它们的名字Item1, Item2等没有意义,这很难理解。考虑创建自定义类,该类将具有描述性名称的属性。
我想说为什么对元组做同样的事情呢?
如果您使用元组来表示键值对,则坚持使用键值对,这是字典包含的集合。如果您对具有2个以上值的行进行建模,我可能更倾向于使用强类型模型,这样您可以在LINQ查询中更显式。