Мне нужно зациклить List<string>, а затем извлечь указанные элементы, начинающиеся с «OO», в новый список строк.
Вот мой код:
List<string> mylist = new List<string>()
Mylist.add("5876575");
Mylist.add("OO12571");
Mylist.add("12287324");
Mylist.add("87665751");
Mylist.add("97213233");
Mylist.add("87612222");
Mylist.add("OO76566");
List<string> matches = new List<string>()
matches = myList.Where(x => x[0] == 'OO').ToList();
Мой приведенный выше код не работает. Пожалуйста, помогите мне. На выходе должен быть список совпадений, который должен содержать только элемент, начинающийся с «OO»:
Совпадения = OO12571, OO76566
Эм myList.Where(x => x.StartsWith("OO")) может быть?
“” для цитат? Вы скопировали этот код из Microsoft Word?





Что ж, в вашем прикрепленном коде много ошибок компиляции.
Предположим, что вы исправили это, есть несколько альтернатив для фильтрации строки в массиве/списке, начинающейся с «OO».
string.StartsWith() по предложению @Charliefacematches = mylist.Where(x => x.StartsWith("OO"))
.ToList();
string.Substring(0, 2).matches = mylist.Where(x => x.Substring(0, 2) == "OO")
.ToList();
using System.Text.RegularExpressions;
Regex regex = new Regex("^OO");
matches = mylist.Where(x => regex.IsMatch(x))
.ToList();
x[0] == 'OO'Правда? Первый символ не может равняться 2 символам. Также похоже, что в строках есть букваO, в то время как код пытается сопоставить нули.