Недавно меня спросили на asp.net форуме о том как бы я нашел старые файлы и удалил их.
Я ответил, что я бы использовал LINQ. Это прекрасное средство для такого сценария. Здесь запрос для нахождения и удаления старых файлов.
Не забудьте добавить ссылку на System.IO.
C#
VB.NET
Запрос находит все файлы, которые старше 6 месяцев.
Все что вам нужно, чтобы запрос работал для вас - это поменять каталог поиска на свой.
Вы также можете заменить паттерн поиска и удалять файлы по другим критериям.
Эту функциональность можно перенести в консольное приложение и запускать с помощью шедулера (менеджера отложенных задач).
Эта задача еще одна неплохая причина использовать LINQ.
В этом примере вы можете увидеть как импользовать выраженеи from-let-where в LINQ
Для этой цели, возьмем простой массив и распечатаем только те числа, которые больше 10.
Как показано выше, from выражение специфицырует исходную коллекцию данных.
Выражение let принимает рассчитанный корень и присваивает его переменной, которая используется в where.
Выражение where обрезает те числа из массива, квадрат которых меньше 10.
Вконце концов выражение select создает объект анонимного типа, который распечатывается в консоль.
Практически все разработчики биндят свои Generic List-ы к ASP.NET контролам.
Однако если список огромен, то вам нужно реализовать постраничность.
Здесь простой пример реализации постраничности с использованием LINQ. Предполагается, что список в памяти.
Здесь написано как найти сумму значений многомерного массива с использованием LINQ. В примере массив имеет 3 строки и 2 колонки:
C#
using System; using System.Linq;
class Program { static void Main(string[] args) { try { var myArray = new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 } }; var arrSum = (from int val in myArray select val) .Sum();
Friend Class Program Shared Sub Main(ByVal args() As String) Try Dim myArray = New Integer(, ) { { 1, 2 }, { 3, 4 }, { 5, 6 } } Dim arrSum = ( _ From val As Integer In myArray _ Select val).Sum()
Console.WriteLine(arrSum) Console.ReadLine() Catch ex As Exception ' handle ex End Try End Sub End Class
Здесь простой пример того, как используя LINQ вытащить только строки из нетипизированного списка (ArrayList),
который содержит строки и целые числа.
C#
VB.NET
Как вы можете видеть, мы использовали метод
Enumerable.OfType<TResult> .
Который отфильтровал элементы коллекции IEnumerable, основываясь на заданном типе, в нашем случае типе String.