【发布时间】:2020-04-15 13:29:24
【问题描述】:
我的列表包含多个属性,例如 Make、Model 和 Color 以及许多其他属性,并且一个字符串包含上述三个提及的 concat 版本。例如,字符串包含“Maruti Suzuki Desire White”,其中“Maruti”是制造商,“Suzuki Desire”是型号,“White”是颜色,在列表中有许多品牌、型号和颜色可以找到完全匹配的。下面是我的示例代码
这是示例模型:
public class MakeModelColor()
{
public string Make {get; set;}
public string Model {get; set;}
public string Color {get; set;}
}
这是一个示例代码:
string concatedString = "Maruti Suzuki Desire White"
MakeModelColor model = new MakeModelColor();
IList<MakeModelColor> list= new List<MakeModelColor>();
list = GetMakeModelColor();
变量list 包含存储在数据库中的所有型号、品牌和颜色。
foreach (var itemMake in list)
{
if(concatedString.Contains(itemMake.Make))
model.Make = itemMake.Make;
}
foreach (var itemModel in list)
{
if(concatedString.Contains(itemModel.Model))
model.Model = itemModel.Model;
}
foreach (var itemColor in list)
{
if(concatedString.Contains(itemColor.Color))
model.Color = itemColor.Color;
}
以上只是澄清我的问题的示例代码。除此之外,如果任何条件满足,我想打破循环并立即停止迭代。 我不知道我是否能够正确解释这个问题,但希望你能理解,如果有比 foreach 更好的选择,也请说明。
【问题讨论】:
-
你可以在 if 条件中使用
break;
标签: c# performance linq foreach iteration