Здравствуйте. Требуется включить в проект Visual Studion 2015 Community исходный код из проекта MoreLinq. Попытался запустить sulution и скомпилировать проекты, но проекты даже не загрузились, возникает следующая ошибка:
C:\Users\rostov.d\Desktop\MoreLINQ-master\MoreLinq\MoreLinq.csproj : error : пространством имен XML по умолчанию для этого проекта должно быть пространством имен MSBuild XML. Если проект создан в формате MSBuild 2003, добавьте xmlns="http://schemas.microsoft.com/developer/msbuild/2003" в элемент . Если проект был создан в старом формате 1.0 или 1.2, преобразуйте его в формат MSBuild 2003. C:\Users\rostov.d\Desktop\MoreLINQ-master\MoreLinq\MoreLinq.csproj
Попытался скопировать только нужные файлы исходного кода в свой проект и скомпилировать. Но Visual Studio ругается на конструкции такого типа:
return _(); IEnumerable<T> _()
Подозреваю, что это связано с отложенным выполнением Linq запросов. В интернете документации найти не смог. Что это за конструкция "return"_(); и как скомпилировать такой код под Visual Stuio 2015 Community?
Пример функции с таким return:
public static IEnumerable<T> Exclude<T>(this IEnumerable<T> sequence, int startIndex, int count)
{
if (sequence == null) throw new ArgumentNullException(nameof(sequence));
if (startIndex < 0) throw new ArgumentOutOfRangeException(nameof(startIndex));
if (count < 0) throw new ArgumentOutOfRangeException(nameof(count));
return _(); IEnumerable<T> _()
{
var index = -1;
var endIndex = startIndex + count;
using (var iter = sequence.GetEnumerator())
{
// yield the first part of the sequence
while (iter.MoveNext() && ++index < startIndex)
yield return iter.Current;
// skip the next part (up to count items)
while (++index < endIndex && iter.MoveNext())
continue;
// yield the remainder of the sequence
while (iter.MoveNext())
yield return iter.Current;
}
}
}