ラムダ式を使用してこれを行うにはどうすればよいですか?
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));
の場合は、次のメソッド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);