@justmakewow

Как преобразовать в linq?

Подскажите, можно ли как-то лаконично преобразовать метод GetIntValue в linq команду?
public class ValueClass
    {
        public int Value;
    }


public int[,] GetIntValue(ValueClass[,] values)
        {
            // можно весь метод заменить на 1 linq команду?
            int[,] valuesInt = new int[2, 2];
            valuesInt[0, 0] = values[0, 0].Value;
            valuesInt[0, 1] = values[0, 1].Value;
            valuesInt[1, 0] = values[1, 0].Value;
            valuesInt[0, 1] = values[0, 1].Value;

            return valuesInt;
        }
  • Вопрос задан
  • 144 просмотра
Решения вопроса 1
@basrach
public int[,] GetIntValue(ValueClass[,] values)
{
	return values.Cast<ValueClass>()
		.Select((x, i) => new { x?.Value, i })
		.Aggregate(
			new int[values.GetLength(0), values.GetLength(1)],
			(accum, item) =>
			{
				accum[item.i / values.GetLength(1), item.i % values.GetLength(1)] = item.Value.GetValueOrDefault();
				return accum;
			});
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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