在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);

在c#初始化之外的元组中添加元素

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查询中更显式。