Say У меня есть следующий код: Объект реализует интерфейс IEnumerable C#?
using System;
using System.Linq;
using System.Collections.Generic;
public class Developer
{
public string Name;
public string Language;
public int Age;
}
class App {
static void Main() {
Developer[] developers = new Developer[] {
new Developer {Name = "Paolo", Language = "C#"},
new Developer {Name = "Marco", Language = "C#"},
new Developer {Name = "Frank", Language = "VB.NET"}};
var developersUsingCSharp = from d in developers
where d.Language == "C#"
select d.Name;
foreach (var item in developersUsingCSharp) {
Console.WriteLine(item);
}
}
}
Я явно не реализован интерфейс IEnumerable<T>
. Мой вопрос заключается в том, что предложение from принимает экземпляры типов, которые реализуют интерфейс IEnumerable, но в этом случае это определенный пользователем тип класса разработчика
Пример кода взято из LINQ в книге Microsoft .NET Framework.
Вы используете '' foreach' на developersUsingCSharp', который является '' IEnumerable. Параметр 'var' ключевого слова не означает «Этот тип -« Объект », это означает« Я дам компилятору решить, что такое тип ». Вам следует избегать использования var из-за путаницы, такой как этот. –
' var' имеет некоторые определенные преимущества. Я бы стеснялся советовать кому-то, чтобы не использовать его полностью. Но есть смысл использовать явные объявления, пока у вас не будет четкого понимания типов в .NET. – StriplingWarrior
@Joushua Я думал, что я редактировал вопрос. Мой вопрос - это предложение из статьи взять i nstances типов, которые реализуют интерфейс IEnumerable, но в этом случае это тип класса разработчика, определенный пользователем. –
ckv