В C# фильтр списка строковых списков, используя строку списка
Эй там,
У меня есть dataview, который заполняется объектом с помощью строковых списков. Я хочу выбрать подходящие записи, набрав поисковые слова в текстовом поле.
объект My:
class my_object { List<string> column1 = new List<string>(); List<string> column2 = new List<string>(); List<string> column3 = new List<string>(); List<string> column4 = new List<string>(); }
мои записи для dataview:
List<my_object> entries = new List<my_object>();
Моя цель состоит в том, чтобы отфильтровать записи, такие как функция поиска в проводнике windows, но с той разницей, что я хочу включить четыре столбца, а не только столбец с именем файла.
Есть ли такая возможность?
Надеюсь, вы сможете мне помочь.
Что я уже пробовал:
internal static List<my_object> SearchObject(this List<my_object> Source, List<string> SearchWords) { List<my_object> results = new List<my_object>(); foreach (my_object m in Source) { foreach(string s in SearchWords) { // Filter Column 1 foreach(string c1 in m.column1) { if(c1.IndexOf(s) != -1) { results.Add(m); break; } } } } return results; // Problem: // This function only filters the first column. // If I want to filter the next column, I have to break all 'foreach' blocks // except the '(my_object m in Source)' block... // It the 'break' would work for more the one loop, this method would work... }
Tomas Takac
Вы не должны иметь объект со списками, скорее вы должны иметь класс с 4 свойствами,а затем иметь список этого.