我有 2 种不同类型的 2 个集合,但具有几乎相同的字段集。在一个函数中,我需要根据一个条件遍历其中一个集合。我只想编写一个涵盖这两种情况的代码块。示例:我有以下代码:
if (condition1)
{
foreach(var type1var in Type1Collection)
{
// Do some code here
type1var.Notes = "note";
type1var.Price = 1;
}
}
else
{
foreach(var type2var in Type2Collection)
{
// the same code logic is used here
type2var.Notes = "note";
type2var.Price = 1;
}
}
现在:我想简化此代码以仅使用相同的逻辑一次(因为它们是相同的),如下所示(PS:我知道以下代码不正确,我只是在解释我想要做什么):
var typecollection = Condition1 ? Type1Collection : Type2Collection;
foreach(var typevar in TypeCollection)
{
// the same code logic is used here
typevar.Notes = "note";
typevar.Price = 1;
}
Type1 & Type2 的定义类似如下代码(其实它们是Entity对象):
public class Type1 : EntityObject
{
public int Type1ID { get; set; }
public int Type1MasterID { get; set; }
public String Notes { get; set; }
public decimal Price { get; set; }
}
public class Type2 : EntityObject
{
public int Type2ID { get; set; }
public int Type2MasterID { get; set; }
public String Notes { get; set; }
public decimal Price { get; set; }
}
更新1:
我在 foreach 块中包含了一些示例代码(我正在访问这两种类型的公共属性)。
更新 2:
我已经包含了示例 Type1 和 Type2 定义,如您所见,我想在 foreach 块中更新这两个类中的 2 个公共公共属性。
更新 3:
很抱歉,Type1 和 Type2 是从 EntityObject 派生的(它们都是我的实体模型的一部分,而 Type1Collection 和 Type2Collection 实际上是这两个实体的 EntityCollection。