3

我正在创建一个命名元组的列表。我使用 add 方法来推广这个列表,但是在这个过程之后,我意识到元组的成员已经失去了只能由“Item1”,“Item2”访问的自定义名称......

我正在使用 .NET 框架版本 4.6.2、C# 7.3

private static List<(string name, string url)> GetItemsNamesAndUrls(IEnumerable<MyItems> itemsList)
    {
        List<(string name, string url)> result = new List<(string name, string url)>();
        foreach (var item in itemsList)
        {
            result.Add((name: item.Name, url: GetItemUrlFromName(item.Name)));
        }
        return result;
    }

MyItem 类非常简单:

class MyItems
{
    public string Name { get; set; }
}

填充结果列表后,我希望能够通过自定义名称访问命名元组成员,而不是使用 Item1 和 Item2。

4

1 回答 1

0

元组值名称等同于方法变量。它们仅在声明时有效。

使用您的GetItemsNamesAndUrls方法,这是有效的代码:

var l = GetItemsNamesAndUrls(itemsList);
var t1 = l[0];
var n = t1.name;
var u = t1.url;
(string x, string y) t2 = t1;
var x = t2.x;
var y = t2.y;
var (a, b) = t1;
var c = t1 == t2; // true
于 2019-08-07T14:58:11.090 回答