2014-01-30 48 views
1

我有一個變量,查詢數據庫後,它返回一組行。每行有一個item idstart dateend date如何檢查變量中是否包含特定的字符串c#?

我想要使用這個變量,所以如果來自我的應用程序的輸入匹配這些行中的任何一組,這個變量已經返回去做一些事情。

這怎麼辦?目前我的if語句只檢查變量返回的第一行。我需要它來檢查所有的行!

這裏是我的控制器代碼:

var dateAvailability=from s in db.Bookings 
        where s.ItemId == id && s.StartDate < s.EndDate 
          && s.EndDate > s.StartDate 
        select s; 
if (ModelState.IsValid) 
{ 
    foreach (var data in dateAvailability.ToList()) 
    { 
     if (booking.ItemId == id && (StartDate == data.StartDate) && (EndDate == data.EndDate)) 
     { 
      ViewBag.error = "Dates already exists"; 
     } 
     else     
      db.Bookings.Add(booking); 
      db.SaveChanges(); 
     return RedirectToAction("Confirmation", 
            new { id = booking.BookingId }); 

     } 
} 

回答

2

您可以使用Any

bool dateExistsAlready = dateAvailability 
    .Any(d => booking.ItemId == id && StartDate == d.StartDate && EndDate == d.EndDate); 
if(dateExistsAlready) 
{ 
    ViewBag.error = "Dates already exists"; 
} 
else 
{ 
    // ... 
} 
+0

非常感謝你,已經工作:) – Wizeman1986

相關問題