[英]Problem replacing string within a list thats is attribute to an object within a loop
我有一个类Plott
。 其中一个属性是一个带有标题名称的列表,称为Headers
。 该列表存储图中所有列的名称。
我需要遍历这些对象(列表中的 plt)并找到任何包含字符串"aaa"
的标题并将其替换为字符串"bbb"
。
我成功地循环并在这些对象中找到了这些标头。 我还可以定义一个用"bbb"
替换"aaa"
的新字符串,但是当我尝试将新字符串分配给该对象时,即列表的索引到该对象时,它会给出一个错误,即集合已更改并且循环不能继续(错误信息不是英文,所以我不会在这里发布)
foreach (Plott obj in plt) {
int c = 0;
foreach (String s in obj.Headers)
{
if (s.Contains("aaa"))
{
string newstr;
newstr = s.Replace("aaa", "bbb");
obj.Headers[c] = newstr;
}
c++;
}
}
只需替换整个列表。
obj.Headers = obj.Headers.Select( x => x.Replace("aaa","bbb") ).ToList();
您在 foreach 循环中检索的变量是集合中元素的只读副本,因此您无法修改它。
如果你想这样做,那么你需要使用一个简单的 for 循环
for (int ind = 0; ind < plt.Count(); ind++)
{
....
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.