我有一个类Plott
。其中一个属性是一个名为Headers
的头名称列表。该列表存储了该图中所有列的名称。
我需要循环遍历这些对象(plt在一个列表中),并找到任何包含字符串"aaa"
的头的出现,并将其替换为字符串"bbb"
。
我成功地遍历并在这些对象中找到了这些头。我还可以定义一个新的字符串替换"aaa"
"bbb"
但是当我尝试受让人的新字符串即索引列表的对象,它给了一个错误关于设置已经改变和循环不能继续(错误消息不是英语所以我不会在这里问)
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++)
{
....
}