Как сгруппировать объекты индексом? C# LINQ

Один довольно простой подход должен просто использовать сценарий ресурса и файл ресурсов. Программы как MSVC не имеют никакой проблемы при редактировании их. Они также довольно дружелюбны по отношению к другим системам (и по отношению к текстовым редакторам) также. Можно просто создать отдельные таблицы строк (и побитово отобразить таблицы) для каждого языка, и отметьте каждую такую таблицу с тем, в каком языке это находится.

18
задан Jader Dias 17 August 2009 в 10:06
поделиться

3 ответа

input
   .Select((value, index) => new { PairNum = index / 2, value })
   .GroupBy(pair => pair.PairNum)
   .Select(grp => grp.Select(g => g.value).ToArray())
   .ToArray()
33
ответ дан 21 October 2019 в 05:29
поделиться

Возможно, не применимо к вам, но вы можете использовать новый метод Zip в C # 4.0


var input = new int[] { 0, 1, 2, 3, 4, 5 };
IEnumerable evens = input.Where((element, index) => index % 2 == 0);
IEnumerable odds = input.Where((element, index) => index % 2 == 1);
var results = evens.Zip(odds, (e, o) => new[] { e, o }).ToArray();

4
ответ дан 21 October 2019 в 05:29
поделиться
var indexedNumbers = input.Select((number, index) => new { Index = index, Number = number });

var pairs =
    from indexedNumber in indexedNumbers
    group indexedNumber by indexedNumber.Index / 2 into indexedNumberPair
    select indexedNumberPair.Select(indexedNumber => indexedNumber.Number);

var arrays = pairs.Select(pair => pair.ToArray()).ToArray();
0
ответ дан 21 October 2019 в 05:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: