我有一个XML文件,其元素Product包含$中的Name和Price。我想同时选择Name和$ Price,但我想在我计算的欧元价格中添加一个字段。我该怎么做呢?感谢。
我目前的查询是:
var queryAllProducts = from product in products
select product;
答案 0 :(得分:2)
假设product
包含字段Name
和PriceUsd
,并且您还有一个名为UsdToEuro
的函数,则可以按如下方式进行选择:
var queryAllProducts = from product in products
select new {
product.Name
, product.PriceUsd
, PriceEuro = UsdToEuro(product.PriceUsd)
};
如果你不想"爆发"在产品的各个字段中,您可以通过匿名类型将其全部引入:
var queryAllProducts = from product in products
select new {
Product = product
, PriceEuro = UsdToEuro(product.PriceUsd)
};
您可以使用element.Product.Name
访问产品字段,而不是第一个示例中的element.Name
。
答案 1 :(得分:1)
添加价格的一种方法是从LINQ查询中返回匿名类型:
var queryAllProducts = from product in products
select new {
Name = product.Name,
Price = product.Price,
PriceEuro = ConvertToEuroPrice(product.Price)
};
添加属性的另一种方法是,如果将Product
类定义为partial
类,则只需向该类添加PriceEuro
属性。
public partial class Product
{
public decimal PriceEuro
{
get { return ConvertToEuroPrice(Price); }
}
}