выберите одно значение из списка с помощью лямбда - выражения
У меня есть список занятий
public class PrintUTAccural { public string PropertyName { get; set; } public string VendorName { get; set; } public string VendorNumber { get; set; } public string InvoiceNumber { get; set; } public DateTime? InvoicePostDate { get; set; } public string UseTaxName { get; set; } public decimal UseTaxExemptAmount { get; set; } public decimal UseTaxAmount { get; set; } public decimal UseTaxNonExemptAmount { get; set; } public decimal InvoiceAmount { get; set; } } string Name= "Nath"
и я должен найти имя "Нат" из этого списка через лямбда-выражение, а затем как я его получу.
string VenderNumber = UtAccuralLstForComp.Where(x => x.VendorName == Name).Select(x => x.VendorNumber).SingleOrDefault();
я использую это, но не получил ценности
[Edit]добавлен блок кода[/Edit]
David_Wimbley
Можете ли вы показать, как вы заполняете список?
List<PrintUTAccural> list = новый список<PrintUTAccural>();
список.Добавить(new PrintUTAccural{ VendorName = "David", VendorNumber = "1"});
список.Добавить(new PrintUTAccural{ VendorName = "Nath", VendorNumber = "88"});
список.Добавить(new PrintUTAccural{ VendorName = "Thom", VendorNumber = "3"});
список.Добавить(new PrintUTAccural{ VendorName = "Wilson", VendorNumber = "4"});
строка VenderNumber = список.Где(x => x.VendorName == "Nath").Выберите(x => x.VendorNumber).Метода singleordefault();
Приставка.WriteLine("Номер Поставщика:" + VenderNumber);
Я сделал все вышесказанное, и ваш код работал нормально.
Pheonyx
Может быть, стоит попробовать FirstOrDefault() вместо SingleOrDefault()?
почитайте здесь:
http://social.msdn.microsoft.com/Forums/en-US/oslo/thread/7ab62c94-0da3-4d6a-92aa-070d9ff8441f