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