我有2列IP表:IP和% 根据IP precent排序此表的最佳方法是什么?
表格类型:
public List<string> statistics()
{
}
答案 0 :(得分:0)
假设您的IpAddress
列是一个字符串,您只是希望该列值按百分比降序排序(由于您的问题含糊不清,因此很多假设):
List<string> ips = IpTable.OrderByDescending(x=> x.Percentage)
.Select(x=> x.IpAddress)
.ToList();
答案 1 :(得分:0)
您必须将字符串拆分为两列,将第二列解析为数字,然后按该列排序。
return from line in statistics
let split = line.Split('\t', '%')
let percentage = double.Parse(split[1])
orderby percentage
select line;
在这段代码中,你必须用你在每一行中的任何字符替换分裂字符,并替换我正在索引的列,但其余的应该按你的需要工作。< / p>
答案 2 :(得分:0)
我认为列表中的每个条目都是一个字符串 - 如果不是忽略以下内容......
你首先必须将其解析为另一种格式 - 不知道这是否属实,但我认为在Ip和你的百分比之间有一个标签('\ t'),所以你可以从做< / p>
var stringTupleList =
myList.Select(s => s.Split('\t'))
.Select(ar => new { Ip = ar[0], PercentString = ar[1] });
这为您提供了匿名类型的列表,您可以继续像BrokenGlass一样回答:
var stringTupleList =
myList.Select(s => s.Split('\t'))
.Select(ar => new { Ip = ar[0], PercentString = ar[1] })
.OrderByDescending(t => t.PercentString)
.Select(t => t.Ip)
.ToList();