Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#按升序对组合列表排序_C#_List - Fatal编程技术网

c#按升序对组合列表排序

c#按升序对组合列表排序,c#,list,C#,List,我将两个列表和一些列组合在一起,我想按升序排列。我要订购的栏目是HODD 我试图阅读关于这个问题的其他答案,但我不知道如何将它们应用到我的代码中 这是我的代码: var data1 = File.ReadAllLines("read" + campionatoselezTxt.Text + "stats.txt").ToList(); var data2 = File.ReadAllLines("read" + campionatoselezTxt.Text + "bex.txt").T

我将两个列表和一些列组合在一起,我想按升序排列。我要订购的栏目是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
    }; 
var data1=File.ReadAllLines(“read”+campionatoseleztext.Text+“stats.txt”).ToList();
var data2=File.ReadAllLines(“read”+campionatoseleztext.Text+“bex.txt”).ToList();
var dataList1=新列表();
foreach(数据1中的var数据)
{
var columns=data.Split(“;”);
dataList1.Add(新数据1
{
Campionato=列[0],
数据=列[1],
Home=列[2],
离开=列[3],
HSFT=int.Parse(第[4]列),
ASFT=int.Parse(列[5]),
HSHT=int.Parse(第[6]列),
ASHT=int.Parse(第[7]列),
HSSH=int.Parse(第[8]列),
ASSH=int.Parse(列[9])
//其他int属性
});
}
var dataList2=新列表();
foreach(数据2中的var数据)
{
var columns=data.Split(“;”);
dataList2.Add(新数据2
{
Home=列[0],
离开=列[1],
HODD=列[4],
XODD=列[5],
AODD=列[6],
});
}
var combinedCatalist=来自dataList1中的d1
//将d2加入d1上的数据列表2中。Home等于d2。Home
在新的{d1.Home,d1.Away}上的dataList2中加入d2等于新的{d2.Home,d2.Away}
选择新的组合数据
{
Campionato=d1.Campionato,
Data=d1.数据,
Home=d2.Home,
远离,远离,
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
}; 

请试一试

完美!:)我已经接受了你的回答,但我有一个问题:我在datagridview中显示了这个列表,是否有可能通过单击标题的列来排序?谢谢!:)是的,我认为在OnSorting事件下,您可以控制数据网格的行为,这与分页的概念相同
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);