Find substring in a list of strings

With Linq, just retrieving the first result:

string result = list.FirstOrDefault(s => s.Contains(srch));

To do this w/o Linq (e.g. for earlier .NET version such as .NET 2.0) you can use List<T>'s FindAll method, which in this case would return all items in the list that contain the search term:

var resultList = list.FindAll(delegate(string s) { return s.Contains(srch); });

same problem i had to do.

You need this:

myList.Where(listStrinEntry => myString.IndexOf(listStringEntry) != -1)

Where:

myList is List<String> has the values that myString has to contain at any position

So de facto you search if myString contains any of the entries from the list. Hope this is what you wanted...


To return all th entries:

IEnumerable<string> result = list.Where(s => s.Contains(search));

Only the first one:

string result = list.FirstOrDefault(s => s.Contains(search));

What you've written causes the compile error

The best overloaded method match for 'string.Substring(int)' has some invalid arguments

Substring is used to get part of string using character position and/or length of the resultant string.

for example srch.Substring(1, 3) returns the string "her"

As other have mentioned you should use Contains which tells you if one string occurs within another. If you wanted to know the actual position you'd use IndexOf