English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Оператор разделения разделяет последовательность (набор) на две части и возвращает одну из них.
Метод расширения Take() возвращает указанное количество элементов от первого элемента.
IList<string> strList = new List<string>(){ "One", "Two", "Three", "Four", "Five" }; var newList = strList.Take(2); foreach(var str in newList) Console.WriteLine(str);
Один Два
Синтаксис запросов C# не поддерживает операторы Take и TakeWhile. Однако, вы можете использовать методы Take/takedwhile для переменных запроса или поместить весь запрос в скобки, а затем вызвать Take/takedwhile ().
Dim takeResult = From s In studentList Take 3 Выбрать s
Метод расширения TakeWhile() возвращает элементы заданного набора, пока指定的 условие не станет истинным. Если первый элемент сам не удовлетворяет условию, то возвращается пустой набор.
Метод TakeWhile имеет два overload. Один принимает предикат типа Func<TSource, bool>, а другой overload принимает предикат типа Func<TSource, int, bool>, передавая тип предиката через индекс элемента.
В следующем примере метод TakeWhile() возвращает новый набор, содержащий все элементы, пока не найдется строка с длиной меньше 4 символов.
Пример: метод TakeWhile в C# возвращает элементы строки с длиной больше 4
IList<string> strList = new List<string>() { "Три", "Четыре", "Пять", "Сотня"}; var result = strList.TakeWhile(s => s.Length > 4); foreach(string str in result) Console.WriteLine(str);
Три
В предыдущем примере TakeWhile() возвращает набор, содержащий только первый элемент, так как второй строковый элемент не satisfies это условие.
TakeWhile также передает текущий индекс в функции предиката. В следующем примере TakeWhile метод принимает элементы, пока длина строки-элемента больше ее индекса
IList<string> strList = new List<string>() { "Один", "Два", "Три", "Четыре", "Пять", "Шестерка"}; var resultList = strList.TakeWhile((s, i) => s.Length > i); foreach(string str in resultList) Console.WriteLine(str);
Один Два Три Четыре