如何使用Lambda表達式來執行此操作?Lambda表達式來迭代通過集合並編輯C#
foreach (var l in urllist)
{
l.Url = l.Url + "?id=" + client.id+ "&active=" + client.Active;
}
如何使用Lambda表達式來執行此操作?Lambda表達式來迭代通過集合並編輯C#
foreach (var l in urllist)
{
l.Url = l.Url + "?id=" + client.id+ "&active=" + client.Active;
}
不要使用LINQ修改集合,使用循環代替:
所以這是最好的方法(有看UriBuilder
Class):
foreach (var l in urllist)
{
l.Url = string.Format("{0}?id={1}&active={2}", l.Url, client.id, client.Active);
}
你必須創建一個新的集合,否則什麼是效率低於修改原始集合:
urllist = urllist
.Select(l => {l.Url = string.Format("{0}?id={1}&active={2}", l.Url, client.id, client.Active; return l;})
.ToList();
如果urllist
是List<T>
,你也可以使用,LINQ預.NET 2方法ForEach
:
urllist.ForEach(l => l.Url = string.Format("{0}?id={1}&active={2}", l.Url, client.id, client.Active));
注意,'.ToList'實際上會返回'List
@pswg:呃,糾正。謝謝。但是,你真的不應該使用這種方法。所以我只是想防止它;) –
感謝您的所有答案。我堅持使用傳統的foreach循環。 – Gokul
如果它是一個List<T>
可以使用ForEach
方法:
urlList.ForEach(x => x.Url += "?id=" + client.id+ "&active=" + client.Active);
否則,這將工作,雖然它依賴於Count
的評價的副作用,並且我不會推薦它用於生產代碼:
urlList.Select(x => x.Url += "?id=" + client.id+ "&active=" + client.Active)
.Count();
個人而言,我會堅持使用傳統的foreach
循環。
這是你在找什麼?
urllist.ForEach(l => 1.Url = l.Url + "?id=" + client.id+ "&active=" + client.Active);
'1.Url ='????? –
你確定,它是'1.Url' – Tilak
哦,也許這應該是'l.Url',它本質上是一個'+ ='操作。 –