我的代码是这样的:
Dictionary<string, string> specialCharacters = new Dictionary<string, string>();
specialCharacters.Add("@", "%");
specialCharacters.Add("*", "^");
List<Action<Employee>> listOfDel = new List<Action<Employee>>();
foreach (KeyValuePair<string, string> character in specialCharacters)
{
Action<Employee> replace = (empData) => empData.EmpName = empData.EmpName.ToString().Replace(character.Key, character.Value);
listOfDel.Add(replace);
//listOfDel.Add(new Action<Employee>((empData) => empData.EmpName = empData.EmpName.ToString().Replace(character.Key, character.Value)));
}
问题是列表 listOfDel 具有相同的操作,因为它引用了相同的函数替换,它取最后一对 character.Key, character.Value ((" ", "^") 我想要一个在列表中具有不同操作的结果动作 listOfDel ,其中每个方法将具有不同的值。("@", "%"), (" ", "^"); 我还尝试创建一个新的动作委托实例并将其用作匿名方法。请查看注释代码,但问题仍未解决。