別のリスト(ParentItems
)のフィールドであるフィールド内のフィールド(ChildItems
)である値(StatusName
)を置き換える必要があります。私はここに私は、私はこれをやっていないよ確信している非同期/待つと正しく別のメソッドを呼び出すサブリストのタスク/非同期ラムダ
をたくさん働いていない私がしようとしているものの例である:
public class parentItem {
public int Id {get;set;}
public string Name {get;set;}
public string Description {get;set;}
public List<childItem> ChildItems {get;set;}
}
public class childItem {
public int Id {get;set;}
public string Name {get;set;}
public string StatusId {get;set;}
public string StatusName {get;set;}
}
// Populate parent in list.
List<parentItem> parents = new List<parentItem>();
//populate....
を私たちは、データ呼を持っています非同期待機メソッドでこれらの要素を設定します。この方法では
// lambda I was hoping to try
parents = parents.Select((par) => {
par.ChildItems = par.ChildItems.Select((sub) => {
sub.StatusName = await ChangeChildStatusName(sub.StatusId);
}).ToList();
return par;
});
public async Task<string> ChangeChildStatusName(int statusId) {
// code.
}
(ChangeChildStatusName
)データベース呼び出し取得がある:私はこのような状況の値
種類を変更します別のメソッドを呼び出します簡単なラムダ式を行うことを期待していました必要なその他の情報私はこのようなもののための別のアプローチがあると確信していますが、これまでのところ私はこのシナリオに合った解決策を見つけることができませんでした。
「選択」は、シーケンス内の各アイテムを別のアイテムに変換します。シーケンス内の各項目に対していくつかのコードを実行するだけではありません。あなたは 'foreach'を使います。すべての同期をとっていても、コードは機能しません。 – Servy