c#按升序排序组合列表

时间:2015-09-26 16:03:40

标签: c# list

我将1个列表中的2个列表与一些列组合在一起,我想通过Ascending来订购它。我要订购的列是HODD。

我试着阅读其他关于这个问题的答案,但我不知道如何将它们应用到我的代码中。

这是我的代码:

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
    }; 

1 个答案:

答案 0 :(得分: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); 

请尝试