Как создать список ValueTuple?
можно ли создать список ValueTuple в C# 7?
такой:
List<(int example, string descrpt)> Method()
{
return Something;
}
3 ответов
вы ищете синтаксис такой:
List<(int, string)> list = new List<(int, string)>();
list.Add((3, "test"));
list.Add((6, "second"));
вы можете использовать это в вашем случае:
List<(int, string)> Method() =>
new List<(int, string)>
{
(3, "test"),
(6, "second")
};
вы можете назвать значения перед возвратом:
List<(int Foo, string Bar)> Method() =>
...
и вы можете получить значения, в то время как (re)называя их:
List<(int MyInteger, string MyString)> result = Method();
var firstTuple = result.First();
int i = firstTuple.MyInteger;
string s = firstTuple.MyString;
конечно, вы можете сделать это:
List<(int example, string descrpt)> Method() => new List<int, string> { (2, "x") };
var data = Method();
Console.WriteLine(data.First().example);
Console.WriteLine(data.First().descrpt);
этот синтаксис лучше всего применять c# 6
но может использоваться в c# 7
Как хорошо. Другие ответы гораздо более правильны, потому что имеют тенденцию использовать ValueTuple
вместо Tuple
используется здесь. Вы можете увидеть различия здесь на ValueTuple
List<Tuple<int, string>> Method()
{
return new List<Tuple<int, string>>
{
new Tuple<int, string>(2, "abc"),
new Tuple<int, string>(2, "abce"),
new Tuple<int, string>(2, "abcd"),
};
}