我正在尝试使用以下
查询我的状态更新存储库 var result = (from s in _dataContext.StatusUpdates
where s.Username == "friend1" && s.Username == "friend2" etc...
select s).ToList();
我不是连续使用s.Username == "friendN"
,而是我可以传递一个列表或数组或类似的东西,而不是指定每一个,或者我可以在查询的中间使用foreach循环。
由于
答案 0 :(得分:1)
答案 1 :(得分:0)
IQueryable<s> query= _dataContext.StatusUpdates;
foreach (var item in names)
{
query = query.Where(p=>p.Username == item);
}
List<s> result = query.ToList();
答案 2 :(得分:0)
我认为我已经破坏了你的一些数据类型,但这应该很接近:
var names = new List<string>();
// populate names
var updates = new List<StatusUpdate>();
// populate updates
var result = (from s in updates
where names.Contains(s.ToString())
select s).ToList();
答案 3 :(得分:0)
如果您只需要检查Username
属性是否具有某个指定值,则可以创建值列表,然后使用All
或Any
等方法检查某些条件适用于数组的任何/所有元素。
您的示例看起来有点可疑 - 用户名s.Username
不能等于多个不同的字符串。您想检查它是否等于任何(指定)名称吗?这可以这样写:
var friends = new[] { "friend1", "friend2", ... };
var result =
from s in dc.StatusUpdates
where friends.Any(fr => s.Username == fr)
select s;
这将返回所有状态更新,以使Username
属性等于任何指定的朋友名称(指定为数组,但您可以使用任何IEnumerable<string>
)。