命名元组中的自定义名称成为默认名称"Item1"和"Item2"



我正在创建一个命名元组的列表。我使用 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。

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

使用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

最新更新