我有這個簡單的類:迭代聰明的方法在列表中使用LINQ
public class JDEItemLotAvailability
{
public string Code { get; set; }
public int ShortCode { get; set; }
public string Description { get; set; }
public string PrimaryUnitCode { get; set; }
public string BranchPlant { get; set; }
public string Location { get; set; }
public string Lot { get; set; }
public int AvailableQuantity { get; set; }
}
在我BLL這個DAL方法返回它們的列表:
var returnedLotList = _JDE8dal.GetLotAvailabilityAsList(_lot);
我要做到以下幾點在返回列表中,我想用最「優雅」的LINQ方式來完成它。
我想檢查列表中是否有符合特定條件的記錄。我想到的是這樣的:
var query =
returnedLotList.Where(l => l.AvailableQuantity != 0 && l.BranchPlant == _mcu && l.Location == _locn)
.OrderByDescending(l => l.AvailableQuantity);
但我想說的是,如果上述查詢不返回結果我想拿第一列表條目的其餘部分。
我該怎麼做?
「如果上面的查詢沒有返回結果,我想採取列表的其餘部分的第一個」。這似乎是一個尷尬的要求。其他開發人員將繼續絆倒這一點。你確定這是一件好事嗎? – Steven
這背後的邏輯是這樣的:如果在特定的倉庫和位置我沒有找到很多數量的物品,那麼我不在意將其中一個記錄作爲指示。我可以走得更遠,做出某種過程而不是第一次,但我想首先得到一般想法...... – e4rthdog
你怎麼知道你得到的記錄是一個「未找到」的記錄而不是正確的記錄?最好返回一個空的列表,然後讓邏輯做一些事情,如果是的話。 – Bobson