哪些类型的类可以使用foreach
循环?
发布于 2008-12-29 23:24:50
这里是文档:Main article With Arrays With Collection Objects
需要注意的是,“集合元素的类型必须可以转换为标识符类型”。这有时无法在编译时进行检查,并且如果实例类型不可分配给引用类型,则可能会生成运行时异常。
如果果篮中有一个非苹果的东西,比如一个橙子,这将会产生一个运行时异常。
List<Fruit> fruitBasket = new List<Fruit>() { new Apple(), new Orange() };
foreach(Apple a in fruitBasket)
这将使用Enumerable.OfType安全地将列表过滤为仅包含苹果
foreach(Apple a in fruitBasket.OfType<Apple>() )
发布于 2017-03-17 18:40:19
IList<ListItem> illi = new List<ListItem>();
ListItem li = null;
foreach (HroCategory value in listddlsubcategory)
{
listddlsubcategoryext = server.getObjectListByColumn(typeof(HroCategory), "Parentid", value.Id);
li = new ListItem();
li.Text = value.Description;
li.Value = value.Id.ToString();
illi.Add(li);
IList<ListItem> newilli = new List<ListItem>();
newilli = SubCatagoryFunction(listddlsubcategoryext, "-->");
foreach (ListItem c in newilli)
{
illi.Add(c);
}
}
发布于 2018-04-24 22:20:58
关于这个主题的有用信息也可以在MSDN上找到。取自那篇文章的精华:
foreach关键字枚举集合,对集合中的每个元素执行一次嵌入语句:
foreach (var item in collection)
{
Console.WriteLine(item.ToString());
}
编译器将上面示例中显示的foreach循环转换为类似以下结构的内容:
IEnumerator<int> enumerator = collection.GetEnumerator();
while (enumerator.MoveNext())
{
var item = enumerator.Current;
Console.WriteLine(item.ToString());
}
https://stackoverflow.com/questions/398982
复制相似问题