使用C#lambdas组合List <int>和int

Mas*_*Net 1 c# lambda

我有以下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)

我认为我正在尝试做的事情是可能的,而我只是遗漏了一些东西.

Jon*_*eet 5

听起来像你可能想要的东西:

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)