C#:如何将 2 个列表放入一个 2 元组列表中

Max*_*owe 3 c# tuples list

我有 2 个列表。第一个是 Type string。第二个是类型object。现在我想将两个列表都放入一个Tuple<string,object>. 像这样

var List = new(string list1, object list2)[]
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

我不得不创建 2 个单独的列表,因为我正在序列化对象,如果我首先有一个List<Tuple<string,object>>,序列化将不起作用。两个列表都可以变大,所以也许使用 foreach 循环?

Mar*_*kus 7

您可以使用该Zip方法创建两个列表中的一个:

var lst = new List<string>() { "a", "b" };
var obj = new List<object>() { 1, 2 };
var result = lst.Zip(obj, (x, y) => new Tuple<string, object>(x, y))
                .ToList();
Run Code Online (Sandbox Code Playgroud)


Dav*_*idG 5

您可以使用 Linq Zip方法:

List<string> list1 = GetStrings();
List<object> list2 = GetObjects();

var merged = list1.Zip(list2, (a, b) => Tuple.Create(a, b));
Run Code Online (Sandbox Code Playgroud)