Быстрый и простой способ отсортировать эти данные, взятые из TSV, и выделить их в соответствии с одним из полей, которые он содержит
Я хочу знать самый быстрый и простой способ сортировки кода, показанного ниже. Сортировка из newRecord.AppCode не подходит, так как это изменит смысл вывода. Поэтому мне нужно отсортировать каждую строку из строки outp. Какой будет лучший способ? Также я хотел бы сделать каждый ряд особенным. Я считаю, что использование LINQ было бы очень быстрым, но я не настолько хорош в этом. Помощь приветствуется. Так близко, чтобы сделать это! Примечание: данные извлекаются из цв. Использование.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);
}
}
}
2 ответа
Есть списки с именами хранителей и новичков. Попытка сделать что-то вроде outp.sort() и outp.sort(), но это не работает в строках. Вот как я решил проблему.
Keepers.Add(outp);
Keepers.Sort();
newKeepers = Keepers.Distinct().ToList();
foreach (object o in newKeepers)
{
Console.WriteLine(o);
}
Console.ReadLine();
Как видите, новые записи содержат разные поля, поэтому я написал инструкцию 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();