私はユーザーのプロパティのリストを(jsonレシーバ用の)文字列配列に変換したいと思う:どのように文字列配列としてlinqの結果を取得するには?
List<User> users = <..list of users from db...>
var jsonData = (
from user in users
select new { user.Id, user.Person.Lastname, user.Person.Firstname });
return Json(jsonData)
結果は配列
[{"Id":1,"Lastname":"Doe","Firstname":"John"},{"Id":2,"Lastname":"Smith","Firstname":"Adam"},...]
という名前だが、次のようなプレーンな文字列の配列配列:
[["1","Doe","John"]
["2","Smith","Adam"], ...]
linq結果を文字列配列にキャストする方法は?
ありがとう、どちらの提案もうまくいきます:) とにかく、以前はこのような文字列配列を試していましたが、奇妙なインデックスエラーで終了しました。あなたのコードでも同じでしたが、私のデータソースが問題だったIQueryableオブジェクトを返すことに気付きました - users.ToList()はこれを解決しました。とにかく、あなたの答えはこれを得るのに役立ちました。ありがとう。 – twk
私は数値型が混在していたので、この正確な解決策は私にとってはうまくいきませんでした(コンパイラが配列の型を判別できないというエラーが出ました)。しかし、私は "new object []"を使用しました。これは私の問題を解決しました。 – mpontillo
@Mike:そうですね、それは私が整数であると仮定した 'user.Id'に対して' .ToString() 'を呼び出した理由です。 'new []'が機能するためには、コンパイラは渡されたオブジェクトから配列の型を推測できるはずです。型が互換性がない場合、コンパイラは不平を言うでしょう。 –