2015-09-26 130 views
0

我將1個列表中的2個列表與一些列組合在一起,我想按升序排列。我想訂購的專欄是HODD。c#按升序排序組合列表

我試着閱讀關於這個問題的其他答案,但我不知道如何將它們應用於我的代碼。

這是我的代碼:

var data1 = File.ReadAllLines("read" + campionatoselezTxt.Text + "stats.txt").ToList(); 
    var data2 = File.ReadAllLines("read" + campionatoselezTxt.Text + "bex.txt").ToList(); 

var dataList1 = new List<Data1>(); 
foreach (var data in data1) 
{ 
    var columns = data.Split(';'); 
    dataList1.Add(new Data1 
    { 
     Campionato = columns[0], 
     Data = columns[1], 
     Home = columns[2], 
     Away = columns[3], 

     HSFT = int.Parse(columns[4]), 
     ASFT = int.Parse(columns[5]), 
     HSHT = int.Parse(columns[6]), 
     ASHT = int.Parse(columns[7]), 
     HSSH = int.Parse(columns[8]), 
     ASSH = int.Parse(columns[9]) 
     //other int properties 
    }); 
} 

var dataList2 = new List<Data2>(); 
foreach (var data in data2) 
{ 
    var columns = data.Split(';'); 
    dataList2.Add(new Data2 
    { 
     Home = columns[0], 
     Away = columns[1], 
     HODD = columns[4], 
     XODD = columns[5], 
     AODD = columns[6], 
    }); 
} 

var combinedDataList = from d1 in dataList1 
//join d2 in dataList2 on d1.Home equals d2.Home 
    join d2 in dataList2 on new { d1.Home, d1.Away } equals new { d2.Home, d2.Away } 
    select new CombinedData 
    { 
     Campionato = d1.Campionato, 
     Data = d1.Data, 
     Home = d2.Home, 
     Away = d2.Away, 
     HSFT = d1.HSFT, 
     ASFT = d1.ASFT, 
     HSHT = d1.HSHT, 
     ASHT = d1.ASHT, 
     HSSH = d1.HSSH, 
     ASSH = d1.ASSH, 
     HODD = d2.HODD, 
     XODD = d2.XODD, 
     AODD = d2.AODD, 
     RisFin = d2.RisFin, 
     Over05SH = d2.Over05SH 
    }; 

回答

0
var combinedDataList = (from d1 in dataList1 
          //join d2 in dataList2 on d1.Home equals d2.Home 
          join d2 in dataList2 on new { d1.Home, d1.Away } equals new { d2.Home, d2.Away } 

          select new CombinedData 
          { 
           Campionato = d1.Campionato, 
           Data = d1.Data, 
           Home = d2.Home, 
           Away = d2.Away, 
           HSFT = d1.HSFT, 
           ASFT = d1.ASFT, 
           HSHT = d1.HSHT, 
           ASHT = d1.ASHT, 
           HSSH = d1.HSSH, 
           ASSH = d1.ASSH, 
           HODD = d2.HODD, 
           XODD = d2.XODD, 
           AODD = d2.AODD, 
           RisFin = d2.RisFin, 
           Over05SH = d2.Over05SH 

          }).OrderBy(p=>p.HODD); 

請儘量

+0

完美! :)我已經接受了你的答案,但我只有一個問題:我在datagridview中顯示這個列表,有沒有可能通過點擊一個標題列來訂購它?謝謝! :) –

+0

是的,我認爲它的OnSorting事件下,你可以控制datagrids的行爲,同樣的概念與分頁 –

+0

我看到:)謝謝! –