j'ai cette classe simple:Itération façon intelligente dans une liste avec 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; }
}
Cette méthode DAL dans mon BLL retourne une liste:
var returnedLotList = _JDE8dal.GetLotAvailabilityAsList(_lot);
Je veux faire ce qui suit dans la liste retournée et je veux le faire de la manière la plus "élégante" LINQ.
Je veux vérifier s'il existe dans la liste un enregistrement qui correspond à des critères spécifiques. Je l'ai pensé à quelque chose comme ceci:
var query =
returnedLotList.Where(l => l.AvailableQuantity != 0 && l.BranchPlant == _mcu && l.Location == _locn)
.OrderByDescending(l => l.AvailableQuantity);
mais je veux dire que si la requête ci-dessus ne retourne pas que je veux prendre le premier du reste des entrées de la liste.
Comment puis-je faire cela?
"si la requête ci-dessus ne renvoie pas les résultats je veux prendre le premier du reste de la liste". Cela semble être une exigence gênante. D'autres développeurs vont continuer à trébucher dessus. Es-tu sûr que c'est une bonne chose? – Steven
la logique derrière ceci va comme: Si un lot n'est pas trouvé ayant la quantité dans l'entrepôt spécifique et l'endroit que je veux qu'il ait, alors je ne m'inquiète pas de m'apporter un des autres disques comme indication. Je pourrais aller plus loin et faire une sorte de processus au lieu d'obtenir le premier, mais je veux d'abord avoir l'idée générale ... – e4rthdog
Comment saurez-vous que l'enregistrement que vous obtenez est un enregistrement "non trouvé" au lieu du bon ? Il vaut mieux retourner une liste vide, puis avoir une logique qui fait quelque chose si c'est le cas. – Bobson