一个小小的新手问题.我有一个foreach循环,我试图访问行对象的属性并分配给一个字符串.
foreach(row in Dataset)
{
 string finalName= row.name;
}
在每次迭代中,我需要将每一行的name属性连接到finalName
\非常感谢,
Mar*_*ris 25
根据您的性能要求,您可以使用加法运算符进行连接:
string finalName = string.Empty;
foreach(row in Dataset)
{
    finalName += row.name;    
}
或使用StringBuilder:
Stringbuilder sb = new StringBuilder();
foreach(row in Dataset)
{
    sb.Append(row.Name);   
}
string finalName = sb.ToString();
一般情况下,对于非常少量的附录,您不会注意到两个版本之间的差异.但是如果你要组合很多字符串,那么使用StringBuilder可能会有非常明显的性能和内存优势.
另外请记住,这将一个接一个地直接放置字符串,因此您可能还希望在每个字符串之间添加一个空格或新行.
LINQ单线特别奖励:
因为你似乎是C#的新手,我建议你忽略这个,因为它非常先进,坦率地说不可读(但另一方面谁不喜欢把随机的LINQ代码扔进他们的代码?).不过,为了完整起见,我会在这里添加它.我不知道性能是什么,但与其他方法相比的一个主要优点是易于使用,您可以在字符串之间放置空格或其他字符.只需将标记行中的值更改为您要将组合字符串与(例如,Environment.NewLine或"")分隔开来的值
string finalName = string.Join(
                "", //Change the value here to separate the strings.
                (from row in Dataset
                 select row.Name).ToArray());
或者,如果你喜欢lambdas到LINQ:
string finalName = string.Join(
            "", //Change the value here to separate the strings.
            Dataset.Select(row => row.Name).ToArray());
| 归档时间: | 
 | 
| 查看次数: | 22842 次 | 
| 最近记录: |