我对Linq很新,但只是想问一下如何使用LINQ填充List<String>
对象?
我想要做的是带来特定用户的所有网址。此数据存储在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;
}
答案 0 :(得分:3)
试试这个
List<String> results =( from u in this.context.usersTableQuery
where u.UserName == pUser.UserName
select u.PhotosUrl).ToList ()
答案 1 :(得分:2)
看起来您的查询总是返回一个用户,并且您想要他的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>
。