1

逆シリアル化された json データのリストが 2 つあり、テーブルをクロス結合したいと考えています。サンプル データは、両方のリストの item1:name、item2:date です。戻り値の型は List ですが、戻り値の型が無効です。ここで何が間違っているのかわかりません。

私がこれまでに持っているもの:

 List<JsonData> jdOne = GetDeserializedData(jsonUrlOne);
 List<JsonData> jdTwo = GetDeserializedData(jsonUrlTwo);

 var query = from urlOne in jdOne
                    from urlTwo in jdTwo
                    select new { urlOne, urlTwo };

 return query;
4

3 に答える 3

4

これを行うには、おそらくタプルを使用したいと思うでしょう....

public List<Tuple<JsonData,JsonData>> myFunc() {
  List<JsonData> jdOne = GetDeserializedData(jsonUrlOne);   
  List<JsonData> jdTwo = GetDeserializedData(jsonUrlTwo);   

  var query = from urlOne in jdOne   
                from urlTwo in jdTwo   
                select Tuple.Create(urlOne, urlTwo);   

  return query.ToList();
}

次に、結果を使用して、次のように 2 つのアイテムにアクセスできます。

var results=myFunc();
var x1=results[0].Item1;
var x2=results[0].Item2;

x1最初のリスト結果からの最初のペアをx2含み、2 番目のペアを含みます。

于 2012-08-20T15:04:31.260 に答える
1

関数から匿名型を返そうとしているようです。両方の値を保持する型を宣言して返す

select new YourType(){Field1 = urlOne, Field2 = urlTwo}
于 2012-08-20T14:58:38.880 に答える
1

これは、Linq: Zipを使用して必要なものですか?

var result = jdOne.Zip(jdTwo, (urlOne, urlTwo) => new {urlOne, urlTwo});
于 2012-08-20T15:18:55.580 に答える