Мне непонятен фрагмент .Select(n => Convert.ToInt32(n)). Что именно делает .Select и что это за n? Откуда она и какой имеет тип и когда этот тип был присвоен? Простите за, возможно, глупый вопрос, но я не понимаю, а на MSDN не нахожу пояснений внятных. или скажите что изучить чтобы это понять?
using System;
using System.IO;
using System.Text;
using System.Linq;
namespace my
{
class MainClass
{
public static void Main(string[] args)
{
while (true)
{
Func(Console.ReadLine().Trim());
}
}
static void Func(string text)
{
try
{
int[] arr = text.Split(',', ';').Select(n => Convert.ToInt32(n)).ToArray();
for (int i = 0; i < arr.Length; i++)
{
Array.Sort(arr);
Console.Write(arr[i] + "| ");
}
Console.Write("\n");
}
catch (FormatException)
{
Console.WriteLine("Вводи значения через зяпятую(,) или точку с запятой(;)");
Func(Console.ReadLine());
}
}
}
}
Вы используете лямбда-выражение. Select, Where, Any и прочие функции LINQ являются методами расширения и применяются к любому типу, который реализует интерфейс IEnumerable.
Вкратце результат Split
возвращает массив, который используется для итерации методом Select
, где n имеет тип string
и выступает входным параметром функции. Любую LINQ функцию можно развернуть в обычный foreach.
var arr = new List<int>();
foreach (var s in text.Split(',', ';'))
{
arr.Add(Convert.ToInt32(s));
}
LINQ расширения существенно сокращают объем кода, который должен написать программист.
К выше существующим ответам добавлю свою толику. Вы можете написать свой Select()
примерно так
class Program
{
static void Main(string[] args)
{
IEnumerable<int> res = "2,4,8;9;5".Split(',', ';')
.MySelect(n => Int32.Parse(n));
}
}
public static class MyExtensions
{
public static IEnumerable<TResult> MySelect<TValue, TResult>(this IEnumerable<TValue> values, Func<TValue, TResult> func)
{
foreach (TValue item in values)
{
yield return func(item);
}
}
}
Метод Select
в качестве параметра принимает функцию, которая вызывается последовательно с каждым элементом из набора, возвращаемого text.Split
. Параметр этой функции здесь назван n
- находится слева от знака =>
. То, что находится справа от знака =>
- значение, возвращаемое этой функцией. Из этих возвращаемых значений формируется набор, возвращаемый функцией Select
.
Создал массив с путями до файлов и создал коллекцию в которую поместил массивДалее написал цикл, который копирует содержимое файлов и дает...
Всем привет! Проблема такая: 18 июня у меня сцена в мобильной игре грузилась за 1-2 секунды, а вот 30 июня сцена стала грузиться 5-6-7 секундКод почти...