C# 如何按数字c对txt文件中的列表框项目进行排序
我想知道如何将列表框中的项目从txt文件中按最低数字到最高数字进行排序C# 如何按数字c对txt文件中的列表框项目进行排序,c#,C#,我想知道如何将列表框中的项目从txt文件中按最低数字到最高数字进行排序 private void Form1_Load(object sender, EventArgs e) { try { try { string[] lines = System.IO.File.ReadAllLines("file.txt"); foreach (stri
private void Form1_Load(object sender, EventArgs e)
{
try
{
try
{
string[] lines = System.IO.File.ReadAllLines("file.txt");
foreach (string line in lines)
{
listBox1.Items.Add(line);
}
}
catch
{
}
}
catch
{
}
}
在我的txt文件中
Shirt = 10$
pants = 20$
shoes = 60$
hat = 10$
socks = 5$
您必须在dicionary中分隔字符串和数字,然后在数字上分隔orderby
Dictionary<string, int> dic = new Dictionary<string, int>();
foreach (var line in lines)
{
string[] str = line.Split('=');
var num= str[1].Replace("$",""); // for seperate $ and number
dic.Add(str[0], (Convert.ToInt32(num)));
}
foreach(var sortItem in dic.OrderBy(x=>x.Value))
{
listBox1.Items.Add(sortItem .Key + " = "+ sortItem .Value.ToString() + "$");
}
我们可以使用linq执行此操作:
string[] lines = File.ReadAllLines(@"D:\Professionals\POC\linQ\linQ\DataFile.txt", Encoding.UTF8);
if (lines.Count() > 0)
{
Dictionary<string, int> listIndex = lines.ToDictionary(
x => x.Split('=')[0].Trim(),
x => (x.Contains("$") ? Convert.ToInt32(x.Split('=')[1].Replace("$", "")) : 0)
);
listIndex = listIndex.OrderBy(x => x.Value).ToDictionary(x => x.Key, x => x.Value);
if (listIndex != null && listIndex.Count > 0)
{
//---your code
}
}
您需要从项目中拆分或隔离该值,以便可以按数字排序。如果你要做任何数学题,比如3件衬衫=30,你可能无论如何都需要这样做。研究数据绑定到一个列表,去掉那些空的catch块。同时阅读并获取“使用属性名称、成本创建模型”,然后使用txt文件值填充模型。稍后,您可以对lines.OrderByl=>Convert.ToInt32l.Split'='[1].TrimEnd'$'{listBox1.Items.Addline;}中的成本属性ForEachVar行应用排序
string[] lines = File.ReadAllLines(@"D:\Professionals\POC\linQ\linQ\DataFile.txt", Encoding.UTF8);
if (lines.Count() > 0)
{
Dictionary<string, int> listIndex = lines.ToDictionary(
x => x.Split('=')[0].Trim(),
x => (x.Contains("$") ? Convert.ToInt32(x.Split('=')[1].Replace("$", "")) : 0)
);
listIndex = listIndex.OrderBy(x => x.Value).ToDictionary(x => x.Key, x => x.Value);
if (listIndex != null && listIndex.Count > 0)
{
//---your code
}
}