我试图从本身具有列表的对象列表中获取一些值,但是我正努力使用Linq查询来实现这一点。我想向用户显示他们未响应的事件数量。
我有一个事件列表,每个事件都有一个EventUsers列表,这些EventUsers有一个布尔HasResponded和一个UserId。我想检索某个用户尚未响应的事件数量。
为简单起见,我省略了Linq查询中不需要的对象的属性。
事件类:
public class Event
{
public List<EventUser> EventUsers { get; set; }
}
EventUser类:
public class EventUser
{
public int EventId { get; set; }
public Event Event { get; set; }
public long UserId { get; set; }
public User User { get; set; }
public bool HasResponded { get; set; }
}
我的linq查询应该看起来像这样,但我无法使其正常工作:
_eventManager.QueryEvents().Where(x => x.StartTime > DateTime.Today && x.EventUsers.Select(z => z.UserId == userId && z.HasResponded)).Count()
我将如何创建此Linq查询?任何帮助深表感谢!
答案 0 :(得分:2)
_eventManager.QueryEvents().Where(x => x.StartTime > DateTime.Today)
.SelectMany(x => x.EventUsers)
.Count(z => z.UserId == userId && !z.HasResponded)
答案 1 :(得分:0)
需要使用SelectMany:
if ($request->hasfile('profilePhoto')) {
$this->validate($request, [
'profilePhoto' => 'required',
'profilePhoto.*' => 'mimetypes:image/jpg'
]);
$image = $request->file('profilePhoto');
$extension = strtolower($image->getClientOriginalExtension());
$path = storage_path('app/public/upload/images/UserImage');
$uniqueName = md5($image . time());
$image->move(public_path($path), $uniqueName . '.' . $extension);
}