gpt4 book ai didi

c# - 在 C# 中,是否可以循环遍历相同基类型的多个集合?

转载 作者:行者123 更新时间:2023-11-30 14:17:29 26 4
gpt4 key购买 nike

假设类“Apple”、“Banana”和“Orange”都继承自“Fruit”。

现在假设我们有成员变量列表 -

List<Apple> mApples; 

List<Banana> mBananas;

List<Orange> mOranges;

我们能否形成一个循环来执行与以下等价的操作?

foreach( Fruit fruit in mApples, mBananas, mOranges )  
{
fruit.Slice();
}

我使用的是 .net 2.0。

最佳答案

你必须连接列表

foreach(Fruit fruit in mApples.Cast<Fruit>()
.Concat(mBananas.Cast<Fruit>())
.Concat(mOranges.Cast<Fruit>()))
{
fruit.Slice();
}

编辑

这将是一个可能的 2.0 解决方案

    foreach(Fruit fruit in Concat<Fruit>(mApples, mBananas, mOranges))
{
fruit.Slice();
}

public static IEnumerable<T> Concat<T>(params IEnumerable<T>[] arr)
{
foreach (IEnumerable col in arr)
foreach (T item in col)
yield return item;
}

关于c# - 在 C# 中,是否可以循环遍历相同基类型的多个集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5797248/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com