将元素添加到初始化 C# 之外的元组

tha*_*rey 2 c# tuples

我是编程新手,我创建了一个元组列表

var tupleList = new List<Tuple<string, string>> { };
Run Code Online (Sandbox Code Playgroud)

稍后在代码中,我想添加一个元素,如

tupleList.Add(string1,string2);
Run Code Online (Sandbox Code Playgroud)

但是 .Add 不知何故不支持这个?

基本上,我正在经历一个循环并添加到元组,然后我想在元组中搜索示例字符串,所以我的第二个问题是我将如何搜索 tupleList.Item1 并获得所有相等的对,例如示例字符串 10?我看到了一个关于字典值的答案,但我可以对元组做同样的事情吗?

var matches = tupleList.Where(pair => pair.Item1.Equals(string10))
                  .Select(pair => Item2.Key);
Run Code Online (Sandbox Code Playgroud)

我不知道这是否有意义,这是原始代码:

var matches = dict.Where(pair => pair.Value == "abc")
                  .Select(pair => pair.Key);
Run Code Online (Sandbox Code Playgroud)

Ser*_*kiy 5

List<T>没有任何特定的方法来处理元组。它适用于任何类型T。如果要将新项目添加到列表,则应创建列表类型的项目T并将其传递给列表。添加新元组:

tupleList.Add(Tuple.Create(string1,string2));
Run Code Online (Sandbox Code Playgroud)

对于搜索只过滤元组列表。Select如果你想得到它们作为结果,你不应该用运算符来投影元组:

var matches = tupleList.Where(pair => pair.Item1 == string10);
Run Code Online (Sandbox Code Playgroud)

注意:我不喜欢元组的无意义名称 Item1、Item2 等,这很难理解。考虑创建具有描述性名称的属性的自定义类。