1- Вы уверены, что .Tag содержит строковое значение? В некоторых случаях, когда мы смотрим окно с часами, отображается имя объекта. Фактически cals «ToString()» метод объекта и показывает его. Я думаю, вы можете использовать этот код:
IEnumerable<TextBox> longDescContainersTag =
longDescContainers.Where(i => i.Tag.ToString() == "DescrOp");
2- Вы уверены, что все объекты в «longDescContainers
» имеет тип «TextBox
»? Я не знаю, что такое объект longDescContainers, но в некоторых контейнерных объектах нам нужно отбросить их элементы (элементы управления), подобные этому «longDescContainers.cast<TextBox>().where(....)
». Если вы не уверены, что все объекты в «longDescContainers» является TextBox, вы можете попробовать этот код:
IEnumerable<TextBox> longDescContainersTag = longDescContainers.
Where(i => i.GetType() == typeof(TextBox) && i.Tag == "DescrOp").
Select(t=> (TextBox)t);
Если longDescContainersTag содержит еще какой-либо объект «TextBox» типа, что тег «DescrOp» код выше возвращает его.
Вы можете использовать соединение «1» и «2» и используйте следующий код:
IEnumerable<TextBox> longDescContainersTag = longDescContainers.
Where(i => i.GetType() == typeof(TextBox) && i.Tag.ToString() == "DescrOp")
.Select(t=> (TextBox)t);
Добавить '.ToList()' в конце – Milen
Вы можете указать «не работает»? –
Определить "* не работает *"? Включите небольшой фрагмент кода, который воспроизводит проблему. Проверка у вас на данный момент чувствительна к регистру ... просто мысль. – James