AddRange из `await` напрямую - PullRequest
       40

AddRange из `await` напрямую

0 голосов
/ 04 сентября 2018

В настоящее время я возвращаю список списков (List<List<string>>) из await getWorlds(), и сейчас я перебираю каждый из них и получаю первую запись в каждом списке.

Мне просто интересно, есть ли другой способ, которым я могу быстро добавить их все прямо в Worlds с помощью .AddRange или что-то еще?

Вот мой код:

var worlds = await getWorlds();
foreach (var w in worlds)
{
    Worlds.Add(w[0]);
}

Есть ли способ сократить это до чего-то меньшего? Как Worlds = worlds.AddRange([0]); или что-то? Я просто хочу получить первую запись [0] и добавить каждую в Worlds. Я просто смотрю, есть ли более чистый способ написания моего кода. Мне не удалось найти ни одного примера.

Ответы [ 2 ]

0 голосов
/ 04 сентября 2018

Это не совсем то, что вы ищете, но вы могли бы сделать это, чтобы добавить все экземпляры элементов во все подсписки, а не только в первый ... (это будет свести список в один список элементов)

var worlds = await getWorlds();
Worlds.AddRange(worlds.SelectMany(w=>w));
0 голосов
/ 04 сентября 2018

Вы можете сделать это:

var worlds = await getWorlds();
Worlds.AddRange(worlds.Select(w => w[0]));

Хотя я не понимаю, почему foreach был таким плохим.

...