c#按升序对组合列表排序
我将两个列表和一些列组合在一起,我想按升序排列。我要订购的栏目是HODD 我试图阅读关于这个问题的其他答案,但我不知道如何将它们应用到我的代码中 这是我的代码: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
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);