Как мне создать запрос linq, который возвращает отдельный 3-буквенный префикс слов в списке, используя отложенное выполнение

#c# #linq

#c# #linq

Вопрос:

У меня есть список из более чем 50 слов переменной длины. Мне нужно получить список IEnumerable, содержащий только первые 3 символа из каждого слова длиной не менее 3 символов, и возвращать только отдельные, используя отложенное выполнение. Как я могу это сделать, используя linq в c # 6?

Комментарии:

1. Вы уже пытались что-нибудь сделать?

2. Вы что-нибудь пробовали? Пожалуйста, поделитесь им с нами

3. words.Where(w => w.Length > 2).Select(w => w.Substring(0,3)).Distinct();

4. List<string> variableLengthValues=new List<string>()``{"Test1","Test2","Test3","Test4"}; var firstthreeDistinctChars= variableLengthValues.Where(x => x.Length > 3).Select(y => y.Substring(0, 3)).Distinct();

Ответ №1:

Вы можете попробовать это:

 var words = new List<string> {...};
var newWords = words.Where(o = o.Length >= 3).Select(o => o.Substring(0, 3)).Distinct();
 

Ответ №2:

 IEnumerable<string> result = list.Where(x => x.Length >= 3).Select(x => x.Substring(0, 3)).Distinct();