0

ServiceStack.Text JsonObject パーサーを使用してドメイン モデルにマップしています。Linq を使用して ArrayObject をフィルタリングし、convertAll を使用して変換しようとする場合を除いて、基本的に何かが機能しています。リンクを使用した後、要素ごとに JsonArrayObjects リストに追加してから渡すことはできません。

var tmpList = x.Object("references").ArrayObjects("image").Where(y => y.Get<int>("type") != 1).ToList();
JsonArrayObjects tmpStorage = new JsonArrayObjects();
foreach (var pic in tmpList) {
    tmpStorage.Add(pic);
}
if (tmpStorage.Count > 0) {
    GalleryPictures = tmpStorage.ConvertAll(RestJsonToModelMapper.jsonToImage);
}

質問: IEnumarable から JsonArrayObjects に戻すより洗練された方法はありますか? where は古いものを操作する代わりに要素をリストにコピーするため、キャストは機能しません。したがって、結果はダウンキャストされた JsonArrayObjects ではなく、新しい List オブジェクトになります。

一番

4

2 に答える 2

1

このような?

var pictures = x.Object("references")
     .ArrayObjects("image")
     .Where(y => y.Get<int>("type") != 1)
     .Select(RestJsonToModelMapper.JsonToImage)
     .ToList();
于 2016-02-09T15:06:06.310 に答える