如何使用linq替换类型字符串列表中的某些特定字符串?

大家好我有一些类型的字符串列表与一些项目。 我想用linq替换一些项目,我该怎么做? 我的下面的代码工作正常,但我想使用linq的强大function在单行代码中执行此操作。

这是我的代码:

List listcolumns = columns.ToList();//Array to list if (listcolumns.Contains("HowToReplace") && listcolumns.Contains("HowTo Replace")) { int index = 0; index = listcolumns.IndexOf("HowToReplace"); if (index > 0) { listcolumns.RemoveAt(index); listcolumns.Insert(index, "HowTo Replace"); } index = listcolumns.IndexOf("HowToReplace"); if (index > 0) { listcolumns.RemoveAt(index); listcolumns.Insert(index, "HowTo Replace"); } columns = listcolumns.ToArray();//List to array } 

有了Linq:

 listColumns.Select(s => s == "HowToReplace" ? "HowTo Replace" : s).ToArray(); 

没有Linq:

  for (int i=0; i 
 List lstString = new List { "find", "find1","find", "find2" }; //all 'find' will be replaced with 'replace' lstString.Select(str=>str.Replace("find","replace")); 
 static class LinqExtensions { public static IEnumerable Replace(this IEnumerable items, Predicate condition, Func replaceAction) { return items.Select(item => condition(item) ? replaceAction(item) : item); } } 

然后就可以这样使用它

 var names = new[] { "Hasan", "Jack", "Josh" }; names = names.Replace(x => x == "Hasan", _ => "Khan").ToArray();