我有以下Pair对象列表:
var listOfPairs = new List<Pair<int, List<int>>>() {
new Pair<int, List<int>>(30, new List<int>() {3, 6, 9}),
new Pair<int, List<int>>(40, new List<int>() {4, 8, 12})
};
Run Code Online (Sandbox Code Playgroud)
我想以下列整数列表结束:
listOfPairs[0] = {30, 3, 6, 9};
listOfPairs[1] = {40, 4, 8, 12};
Run Code Online (Sandbox Code Playgroud)
我尝试了很多看似这样的小摆设,但无济于事:
var flattenedListOfPairs = listOfPairs.Select(pair => new List<int>(pair.First).AddRange(pair.Second));
Run Code Online (Sandbox Code Playgroud)
我认为我正在尝试做的事情是可能的,而我只是遗漏了一些东西.
听起来像你可能想要的东西:
var flattened = listOfPairs.Select(pair => new[] { pair.First }.Concat(pair.Second)
.ToList())
.ToList();
Run Code Online (Sandbox Code Playgroud)
要么:
var flattened = listOfPairs.Select(pair => Enumerable.Repeat(pair.First, 1)
.Concat(pair.Second)
.ToList())
.ToList();
Run Code Online (Sandbox Code Playgroud)
或者使用MoreLINQ
var flattened = listOfPairs.Select(pair => pair.Second.Prepend(pair.First)
.ToList())
.ToList();
Run Code Online (Sandbox Code Playgroud)