0

私はLinqを初めてList<String>使用しますが、LINQを使用してオブジェクトを塗りつぶす方法を知りたいだけですか?

私がやろうとしているのは、特定のユーザーからすべてのURLを取得することです。このデータはAzureテーブルに保存されます

私のコードは:

public IEnumerable<UserTable> getUserImages(UserTable pUser) {
    var results = from u in this.context.usersTableQuery
                  where u.UserName == pUser.UserName
                  select u.PhotosUrl //PHOTOS URL IS A LIST of strings and I know im missing something here
    return results;
}
4

2 に答える 2

3

これを試して

   List<String>  results =( from u in this.context.usersTableQuery
                                  where u.UserName == pUser.UserName
                                  select u.PhotosUrl).ToList () 
于 2013-03-26T17:58:56.103 に答える
2

クエリは常に1人のユーザーを返し、そのユーザーのPhotosUrlリストが必要なようです。それが本当であるとき、あなたはそれを使うべきです:

var user = this.context.usersTableQuery.FirstOrDefault(u => u.UserName == pUser.UserName);

List<string> results;
if(user == null)
    results = new List<string>();
else
    results = user.PhotosUrl;

クエリが指定されたUserNameを持つ複数のユーザーを返す可能性がある場合は、SelectMany拡張メソッドを使用する必要があります。

List<string> results = this.context.usersTableQuery
                                   .Where(u => u.UserName == pUser.UserName)
                                   .SelectMany(u => u.PhotosUrl)
                                   .ToList();

SelectMany構文ベースのクエリに関連付けられたキーワードがありません。List<List<string>>結果をに平坦化しますList<string>

于 2013-03-26T19:07:01.823 に答える