При поиске ответа на этот вопрос я столкнулся с подобными, использующими LINQ, но я не смог их полностью понять (и, следовательно, реализовать), поскольку я не знаком с ним. В основном я хотел бы:
- Проверьте, содержит ли какой-либо элемент списка определенную строку.
- Если это так, получите этот элемент.
Честно говоря, я не знаю, как это сделать. Я могу придумать это (не работает, конечно):
if (myList.Contains(myString))
string element = myList.ElementAt(myList.IndexOf(myString));
Я знаю, ПОЧЕМУ это не работает:
-
myList.Contains()
не возвращаетtrue
, так как будет проверять, соответствует ли весь элемент списка указанной строке. -
myList.IndexOf()
не найдет вхождения, так как, как и в случае с этим, он проверит элемент, соответствующий строке.
Тем не менее, я не знаю, как решить эту проблему, но я полагаю, что мне придется использовать LINQ, как было предложено в подобных вопросах, для моего. При этом, если это так, я хотел бы, чтобы ответчик объяснил мне использование LINQ в их примере (как я уже сказал, я не беспокоился об этом в свое время с С#). Спасибо заранее, парни (и девушки?).
EDIT: я придумал решение; просто пройдите по списку, проверьте, содержит ли текущий элемент строку, а затем установите строку, равную текущему элементу. Мне интересно, однако, есть ли более эффективный способ, чем это?
string myString = "bla";
string element = "";
for (int i = 0; i < myList.Count; i++)
{
if (myList[i].Contains(myString))
element = myList[i];
}