2016-11-12 3 views
0

Как я могу избежать Если условие для этой ситуации, если userid равно нулю?C# - если условие в Linq выбирает запрос с предложением where

if (Userid == 0) 
{ 
    var logList = service.GetLogDetails(); 
    var usernames = (from A in logList orderby A.FirstName select new { Name = A.FirstName + " " + A.SurName, ID = A.Id }).Distinct(); 
    var loginDate = (from A in logList select A.LogInTime.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)).Distinct(); 
    var logOutDate = (from A in logList select (A.LogOutTime ?? "Unknown").ToString().Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)).Distinct(); 
} 
else 
{ 
    var logList = service.GetLogDetails(); 
    var usernames = (from A in logList where A.Id == Userid orderby A.FirstName select new { Name = A.FirstName + " " + A.SurName, ID = A.Id }).Distinct(); 
    var loginDate = (from A in logList where A.Id == Userid select A.LogInTime.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)).Distinct(); 
    var logOutDate = (from A in logList where A.Id == Userid select (A.LogOutTime ?? "Unknown").ToString().Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)).Distinct(); 
} 
+3

'где A.id == Userid || Userid == 0' – KMoussa

ответ

3

Используйте || в вас LinQ where пункта. Кроме того, вы можете улучшить запрашивая logList один раз, а затем применять различные выступы на нем:

var logList = service.GetLogDetails() 
        .Where(item => Userid == 0 || item.Id = Userid) 
        .ToList(); 

var usernames = (from A in logList 
       orderby A.FirstName 
       select new { Name = $"{A.FirstName} {A.SurName}", ID = A.Id }).Distinct(); 

var loginDate = (from A in logList 
       select A.LogInTime.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)).Distinct(); 

var logOutDate = (from A in logList 
        select (A.LogOutTime ?? "Unknown").ToString().Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)).Distinct(); 
+0

Я так написал, как вы говорите var logList = service.GetLogDetails(). Где (item => item.Id == Userid || Userid == 0) .ToList(); Теперь его работы. Спасибо – lashja

+1

@AbhilashJA - добро пожаловать :) –

+2

@AbhilashJA Если его ответ помог вам, отметьте его как правильно. – mybirthname

1

Изменить Ваши запросы, как этот

var usernames = (from A in logList where A.Id = UserId || UserId == 0 ... 
+2

Хотя правильно это похоже на ответ, отправленный 4 минуты назад –