Я читаю данные с листа Excel, поэтому у меня есть этот код для получения нужной области;
Excel.Range range = (Excel.Range)worksheet.get_Range("A9", "AO" + (worksheet.UsedRange.Rows.Count).ToString());
System.Array rangeCells = (System.Array)range.Cells.Value;
Итак, мои данные имеют длину x и ширину 41 ячейки, поэтому мой массив выглядит так:
rangeCells[1,1] through to rangeCells[1,41] is line 1
rangeCells[2,1] through to rangeCells[2,41] is line 2
и так далее до конца.
Кто-нибудь знает способ LINQ получить каждую строку в объект?
new myObj() { Prop1 = rangeCells[1,0], Prop2 = rangeCells[1,1], SomeOtherProp = rangeCells[1,3], YetAnotherProp = rangeCells[1,4] .... };
для всех 41 свойства, но каким-то образом сжатый/более чистый/автоматизированный с помощью LINQ (или другого механизма?) (EDIT: и, конечно же, увеличение строки) - person Chris Sinclair   schedule 03.07.2013yield return
нужных вам объектов будут достаточно чистыми. Определенно чище, чем беспорядокEnumerable.Range()
s, чтобы сделать это с помощью методов LINQ. - person millimoose   schedule 03.07.2013foreach
работать с многомерным массивом. - person millimoose   schedule 03.07.2013IEnumerable
. Так чтоrange.Cells.Value.Cast<whatever>().Select()
тоже вариант. - person millimoose   schedule 03.07.2013