-1

我想知道对下面显示的代码进行排序的最快和最简单的方法。从 newRecord.AppCode 排序不合适,因为它会改变输出的含义。所以我需要从字符串输出中对每一行进行排序。最好的方法是什么?我也想让每一行都不同。我相信使用 LINQ 会很快,但我并不擅长它。帮助表示赞赏。如此接近完成它!注意:数据是从 tsv 中提取的。使用.net 3.5,visual studio 2008)我会在我取得进展后立即标记答案。:)

while ((line = sr.ReadLine()) != null)
            {
                String[] splitted = line.Split('\t');
                appcodes.Add(line);
                Records newRecord = new Records();

                newRecord.Server = splitted[0];
                newRecord.Instance = splitted[1];
                newRecord.AppCode = splitted[2];
                newRecord.Database = splitted[3];
                listrecords.Add(newRecord);
                for (int i = 0; i < appcodes.Count(); i++)
                {
                    if (newRecord.AppCode==appcodes[i].ToUpper())
                    {
                        String outp = newRecord.AppCode + "  " + newRecord.Server + "  " + newRecord.Instance + "  " + newRecord.Database;


                        Console.WriteLine(outp);
                    }
                }


            }
4

2 回答 2

0

有名为 Keepers 和 newkeepers 的列表。试图做类似 outp.sort() 和 outp.sort() 的事情,但它在字符串中不起作用。这就是我解决问题的方法。

 Keepers.Add(outp);

Keepers.Sort();

 newKeepers = Keepers.Distinct().ToList();

foreach (object o in newKeepers)
            {
                Console.WriteLine(o);
            }
Console.ReadLine();
于 2014-01-16T13:47:47.653 回答
0

如您所见,newrecords 包含不同的字段,因此我编写了一个 LINQ 语句来解决问题。

 var sorted_list = (from r in newrecords
                                   orderby r.AppCode, r.Server, r.Instance, r.Database
                                   select r).Distinct().ToList();


                var distinctSortedList = sorted_list.Distinct().ToList();
于 2014-01-16T13:50:24.557 回答