首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在C#中,foreach循环是如何工作的?

在C#中,foreach循环是如何工作的?
EN

Stack Overflow用户
提问于 2008-12-29 22:52:47
回答 4查看 97.8K关注 0票数 86

哪些类型的类可以使用foreach循环?

EN

回答 4

Stack Overflow用户

发布于 2008-12-29 23:24:50

这里是文档:Main article With Arrays With Collection Objects

需要注意的是,“集合元素的类型必须可以转换为标识符类型”。这有时无法在编译时进行检查,并且如果实例类型不可分配给引用类型,则可能会生成运行时异常。

如果果篮中有一个非苹果的东西,比如一个橙子,这将会产生一个运行时异常。

代码语言:javascript
复制
List<Fruit> fruitBasket = new List<Fruit>() { new Apple(), new Orange() };
foreach(Apple a in fruitBasket)

这将使用Enumerable.OfType安全地将列表过滤为仅包含苹果

代码语言:javascript
复制
foreach(Apple a in fruitBasket.OfType<Apple>() )
票数 2
EN

Stack Overflow用户

发布于 2017-03-17 18:40:19

代码语言:javascript
复制
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);
    }
}
票数 -1
EN

Stack Overflow用户

发布于 2018-04-24 22:20:58

关于这个主题的有用信息也可以在MSDN上找到。取自那篇文章的精华:

foreach关键字枚举集合,对集合中的每个元素执行一次嵌入语句:

代码语言:javascript
复制
foreach (var item in collection)
{
    Console.WriteLine(item.ToString());
}

编译器将上面示例中显示的foreach循环转换为类似以下结构的内容:

代码语言:javascript
复制
IEnumerator<int> enumerator = collection.GetEnumerator();
while (enumerator.MoveNext())
{
    var item = enumerator.Current;
    Console.WriteLine(item.ToString());
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/398982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档