用LINQ条件更新集合中的字符串
本文关键字:字符串 集合 更新 LINQ 条件 | 更新日期: 2023-09-27 18:17:09
我想更新列表中的所有字符串,不以"http://"开始,以"http://"开始
在foreach中,我将这样做:
url = url.StartsWith("http://") ? url : url.Insert(0, "http://");
使用常规的for
循环-这是修改集合的最简单方法:
for (int i = 0; i < list.Count; i++)
{
string url = list[i];
if (!url.StartsWith("http://"))
{
list[i] = "http://" + url;
}
}
如果你想创建一个新的集合,很简单:
var modifiedList = list.Select(url => url.StartsWith("http://") ? url : "http://" + url)
.ToList();
yourlist.Where(_ => !_.StartsWith("http://")).ToList().ForEach(_ => _.Insert(0, "http://"));
使用Union
的另一种方法是:
var result =
list.Where(url => url.StartsWith("http://"))
.Union(list.Where(url => !url.StartsWith("http://")).Select(url => $"http://{url}"))
.ToList();