2017-04-10 37 views
-4

我有list对象,我想通过连接这些值来发出消息。 在list中有两个属性,分别叫做areafilled。我需要这样的方式model[0].area = model[0].filled and model[0].area = model[1].filled。 根据条件数组列表对象可以是0至5的元件如何在C#中使用forloop连接列表元素为一个字符串

示例:Area1 = 8.12Area2 = 7.8填充,数据类型填充 - 双,面积=串

List<MHViewModel> model = getMHDetails(); 
model = model.Where(x => x.Filled > 8).ToList(); 

int numbers = model.Count; 
string data = ""; 
if (numbers > 0) 
{ 
    data = model[0].Area + model[0].Filled.ToString("0.00") ; 
} 
+0

那么,你尝试了什么? – BugFinder

+0

无法理解您的大部分要求,但您可以使用Linq Aggregate –

回答

0

可以继续使用LINQ的和放string.Join到Concat的:

var concat = string.Join(" and ", model 
     .Select((item, index) => $"Area{index + 1}={item.Filled:F2}")); 

    string result = string.IsNullOrEmpty(concat) ? "" : $"{concat} filled."; 

如果硬要for循环

StringBuilder sb = new StringBuilder(); 

    for (int i = 0; i < model.Count; ++i) { 
     if (sb.Length > 0) 
     sb.Append(" and "); 

     sb.Append($"Area{i + 1}={model[i].Filled:F2}"); 
    } 

    string result = sb.Length > 0 ? $"{sb.ToString()} filled." : ""; 
+0

Area1 = Kadma和Area2 = Kadma和Area3 =像这样的Kadma filled.getting。 我需要Area1 = 22.3和Area2 = 12.3和Area3 = 6.7填充。 – coder

+0

@coder:对不起,似乎我已经把错误的属性'item.Filled'应该已经被使用(见我的编辑) –

+0

它的工作,但我只需要填充variable.Area1 = 4.57708和和区域3 =使用顶部片段的7.53437 filled.im。 – coder

相关问题