我需要更新IEnumerable列表中的值。IEnumerable中的更新项目
下面是一个简单的IEnumerable例如:
IEnumerable<string> allsubdirs = new List<string>() { "a", "b", "c" };
现在,如果我想要一个时间戳添加到每个项目,这并不工作:
allsubdirs.Select(a => a = a + "_" + DateTime.Now.ToString("hhmmss")).ToList();
无论是做这个的:
foreach (var item in allsubdirs)
item = item + "_" + DateTime.Now.ToString("hhmmss");
我做了这样的工作:
IEnumerable<string> newallsubdirs = allsubdirs.Select(a => a + "_" + DateTime.Now.ToString("hhmmss")).ToList();
allsubdirs = newallsubdirs;
但这似乎有点作弊。请问这样做的正确方法是什么?
'IEnumerable'是*只读*。你不能修改它。如果你想修改集合,那么考虑把它改为'List'。 –
也许使用列表会更合适? –
使用合适的类而不是字符串,甚至可以使用Tuple或Tuple 。迭代查询的结果,第二项设置为时间戳 –