---
title: "Немного функциональности в C#"
description: "Простенькое: public static int ToInt(this string value, int @default = 0) { int result; r..."
author: "Hes"
published: "2014-05-20T03:13:33+00:00"
modified: "2014-10-24T01:31:40+00:00"
locale: "ru"
canonical_url: "https://yvision.kz/post/nemnogo-funkcionalnosti-v-c-414327"
markdown_url: "https://yvision.kz/post/nemnogo-funkcionalnosti-v-c-414327/markdown"
site_name: "Yvision.kz"
---

# Немного функциональности в C#

> Простенькое: public static int ToInt(this string value, int @default = 0) { int result; r...

Простенькое:
- public static int ToInt(this string value, int @default = 0)

- {

- int result;
- return int.TryParse(value, out result)

- ? result

- : @default;

- }

Такая запись позволить получить результат вне зависимости от value.

И дальше возможно использовать так:
- var i = "123".ToInt();
- var j = "1qwerty".ToInt(100);

 

Чуть посложнее. Немного Linq.

Предположим, что у нас есть некоторое перечисление - IEnumerable и мы хотим произвести некоторые действия над ним без использования foreach. У каждого перечисления есть метод материализации списка - ToList, т.к. сам по себе IEnumerable - ленивый.

У класса List есть метод ForEach, который позволяет производить некоторую операцию с каждым элементом списка, при этом не меняя сам список.

На вход метода подается делегат Action, который можно передать либо в виде анонимной лямбда-функции, либо в виде определенного метода.

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

- files

- .ForEach(

- doc =>

- {

- _operations[[key](http://www.php.net/key)].Execute(doc);

- _log.Info(string.Format("File: {0} processed", doc));

- });

 

Теперь, предположим, что нам нужно произвести некую операцию с каждым элементом перечисления, при этом модифицируя само перечисление. Для этого используется метод Select. Простейший пример из MSDN:
- IEnumerable squares = Enumerable.[Range](http://www.php.net/range)(1, 10).Select(x => x * x);

 

При этом значения квадратов исходного перечисления не вычисляются мгновенно, а будут вычислены только тогда, когда будет произведено перечисление объекта при помощи метода GetEnumerator, либо при помощи foreach.

На этом пока все:)

---

Source: [https://yvision.kz/post/nemnogo-funkcionalnosti-v-c-414327](https://yvision.kz/post/nemnogo-funkcionalnosti-v-c-414327)