C# 如何按数字c对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

我想知道如何将列表框中的项目从txt文件中按最低数字到最高数字进行排序

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