如何使用 lambda 表达式 select 列名?
How to select column names using a lambda expression?
我对 lambda 表达式很陌生。
我有这个xml
<Booksshel>
<BookN>
<column>author</column>
<column>Price</column>
<column>Date</column>
</BookN>
<BookDetails id=1>
<author>john</author>
<price>50</price>
</BookDetails>
<BookDetails id=2>
<author>kalam</author>
<price>90</price>
</BookDetails>
<BookDetails id=3>
<author>sachin</author>
<price>70</price>
<Date>12-08-2015</Date>
</BookDetails>
</Booksshel>
在上面的 XML 中,我在列表 'author, price' 中有列名,我需要使用 lambda 表达式 select 特定的 BookDetails
。
foreach (var col in columnName)
{
sl.AddRange(_doc.Descendants("BookDetails")
.Where(p =>Id.Contains(p.Element("BookDetails").Value))
.Select(p=> New { p.Element(col).Value }).ToList())
}
这引发了一些奇怪的问题。我怎样才能得到详细信息?
既然你提到了你 "need to select the particular BookDetails using a lambda expression" 你可以 select 像这样的特定书籍的书籍详细信息:
var result = _doc.Descendants("BookDetails")
.Where(x => x.Attribute("id").Value == "1")
.Select(b => new { Author = b.Element("author").Value, Price = b.Element("price").Value });
你可以像这样遍历结果
foreach (var book1 in result)
{
Console.WriteLine($"{book1.Author}\t\t{book1.Price}");
}
或者因为您期待一个结果,您可以获得这样的项目:
var book2 = result.FirstOrDefault();
if (book2 != null)
{
Console.WriteLine($"{book2.Author}\t\t{book2.Price}");
}
我对 lambda 表达式很陌生。
我有这个xml
<Booksshel>
<BookN>
<column>author</column>
<column>Price</column>
<column>Date</column>
</BookN>
<BookDetails id=1>
<author>john</author>
<price>50</price>
</BookDetails>
<BookDetails id=2>
<author>kalam</author>
<price>90</price>
</BookDetails>
<BookDetails id=3>
<author>sachin</author>
<price>70</price>
<Date>12-08-2015</Date>
</BookDetails>
</Booksshel>
在上面的 XML 中,我在列表 'author, price' 中有列名,我需要使用 lambda 表达式 select 特定的 BookDetails
。
foreach (var col in columnName)
{
sl.AddRange(_doc.Descendants("BookDetails")
.Where(p =>Id.Contains(p.Element("BookDetails").Value))
.Select(p=> New { p.Element(col).Value }).ToList())
}
这引发了一些奇怪的问题。我怎样才能得到详细信息?
既然你提到了你 "need to select the particular BookDetails using a lambda expression" 你可以 select 像这样的特定书籍的书籍详细信息:
var result = _doc.Descendants("BookDetails")
.Where(x => x.Attribute("id").Value == "1")
.Select(b => new { Author = b.Element("author").Value, Price = b.Element("price").Value });
你可以像这样遍历结果
foreach (var book1 in result)
{
Console.WriteLine($"{book1.Author}\t\t{book1.Price}");
}
或者因为您期待一个结果,您可以获得这样的项目:
var book2 = result.FirstOrDefault();
if (book2 != null)
{
Console.WriteLine($"{book2.Author}\t\t{book2.Price}");
}