#c# #csv #sorting
#c# #csv #сортировка
Вопрос:
Мне нужно отсортировать мой csv-файл в алфавитном порядке и не показывать те, для которых он говорит «hidden» (он же. клиент 4 и клиент 5) это код:
static void Main(string[] args)
{
ReadCSFVFile();
Console.WriteLine();
}
static void ReadCSFVFile()
{
var lines = File.ReadAllLines("Navigation.txt");
var list = new List<Company>();
foreach (var line in lines)
{
var values = line.Split(';' );
var company = new Company() { ID = values[0], MenuName = values[1], ParentID = values[2], IsHidden = values[3], LinkURL = values[4] };
list.Add(company);
}
list.ForEach(x => Console.WriteLine($"{x.ID}t {x.MenuName}t {x.ParentID}t {x.IsHidden}t {x.LinkURL}"));
}
public class Company
{
public string ID { get; set; }
public string MenuName { get; set; }
public string ParentID { get; set; }
public string IsHidden { get; set; }
public string LinkURL { get; set; }
}
и это файл csv:
- ID;MenuName;ParentID;isHidden;LinkURL
- 1;Company; NULL;False; /company
- 2; О нас;1;False; /company/aboutus
- 3; Миссия; 1;False; /company /mission
- 4; Команда; 2;False; /company/aboutus/team
- 5; Клиент 2;10;False; /references/client2
- 6; Клиент 1;10;False; /references/client1
- 7; Клиент 4;10;True; /references/client4
- 8; Клиент 5;10;True; /references/client5
- 10;Ссылки; NULL;False; /ссылки
Комментарии:
1. Загляните в LINQ: OrderBy() и Where() . docs.microsoft.com/en-us/dotnet/csharp/programming-guide /…
Ответ №1:
Приведенное ниже должно помочь вам достичь этого. Я прокомментировал части, которые я добавил, чтобы помочь.
list.OrderBy(x => x.MenuName) // Order alphabetically based on MenuName
.Where(x => x.IsHidden != "True") // Filter only for non-hidden items
.ToList().ForEach(
x => Console.WriteLine($"{x.ID}t {x.MenuName}t {x.ParentID}t{x.IsHidden}t {x.LinkURL}"));
Комментарии:
1. Когда я пытаюсь это сделать, он говорит, что «оператор! невозможно применить к «string»»
2. Извините, не заметил, что это строка, я обновил код