2013-05-09 2 views
0

У меня был хороший взгляд на это, но я все еще очень не уверен, может кто-нибудь, пожалуйста, дайте мне знать, как я могу оптимизировать это в LINQ? Это кажется немного старым, и я уверен, что есть способ сделать это, используя LINQ.Список в массив по LINQ

Dim existingSpends(Spend.Count, 4) As Double 
Dim row As Integer, col As Integer 
row = 0 
For Each s As MarketingSpend_Chart In Spend 
    existingSpends(row, 0) = s.field1 
    existingSpends(row, 1) = s.field2 
    existingSpends(row, 2) = s.field3 
    existingSpends(row, 3) = s.field4 
    row += 1 
Next 
+0

Что заставляет вас думать, что LINQ будет быстрее? Знаете, это тоже будет делать цикл. – Oded

+2

Это выглядит достаточно ясно для меня. Метод LinQ не означает лучшего, а иногда и менее значимого. – Jonathan

+0

? Еще хотелось бы знать, можно ли это сделать через LINQ –

ответ

0

Linq предназначен для получения результатов, которые реализуют IEnumerable, такие, как List с и одномерных массивов. Я не видел метод linq, который может создать двумерный массив.

Если, однако, вы хотите изменить свой результат установить YO массив неровными вы могли бы сделать

MarketingSpend_Chart.Select(Function(s) New Double(4) {s.field1, _ 
                 s.field2, _ 
                 s.field3, _ 
                 s.field4}) _ 
        .ToArray() 

Я согласен с замечаниями, однако, что Linq ненужно здесь.

Смежные вопросы