Ich versuche, (über LINQ) eine generische Liste abzufragen, und sie "handelt" so, als ob einige der Felder, auf denen ich mich befinde, nicht existieren. HierWarum erkennt meine LINQ-Abfrage Mitglieder einer allgemeinen Liste nicht?
ist der Code:
private decimal GetPriceForMember_Code_Desc_Unit_Week(string member, string itemcode, string desc, string unit, int weeknum)
{
Decimal price = 0.00M;
if (unit == CRAFTWORKS_SC)
{
price = craftworksWeek1PVDSubsetList.Select(x => x.Price)
.Where(x => x.ShortName.Equals(member))
.Where(x => x.Description.Equals(desc))
.Where(x => x.WeekNum.Equals(weeknum))
.Where(x => x.ItemCode.Equals(itemcode));
}
//else if (unit == CHOPHOUSE) TODO: Finish
return price;
}
Es scheitert mit "‚string‘enthält keine Definition für‚Shortname‘und keine Erweiterungsmethode‚Shortname‘ein erstes Argument vom Typ‚string‘akzeptieren könnte gefunden werden (fehlt Ihnen eine Verwendungs-Richtlinie oder eine Assembly-Referenz?) "
Da ist anscheinend etwas falsch mit meiner LINQ-Syntax, aber ich weiß nicht was. Die generische Liste im Code definiert und erklärt, wie so:
public class PriceVarianceSubsetData
{
public String ShortName { get; set; }
public String ItemCode { get; set; }
public String Description { get; set; } //<= need this, too?
public String Price { get; set; }
public int WeekNum { get; set; }
}
. . .
List<PriceVarianceSubsetData> craftworksWeek1PVDSubsetList = null;
Warum es keine Skrupel hat über „Preis“ noch beschwert sich über „Shortname“? Sie sind beide Mitglieder der Klasse "PriceVarianceSubsetData"
Sie verwenden. Wählen Sie(), um nur die Price-Eigenschaft auszuwählen, d. H. Das ist die einzige verfügbare Eigenschaft. vielleicht sollten Sie die .Select an das Ende der Abfrage verschieben. – failedprogramming
Verschieben Sie 'Select' an das Ende. –