【发布时间】:2014-03-11 12:39:22
【问题描述】:
private Dictionary<int, double> TaxDiction { set; get; }
XDocument doc = XDocument.Load(path);
XElement xelement = XElement.Load(path);
var query = from nm in xelement.Descendants("EmployeeFinance")
where (int)nm.Element("EmpPersonal_Id") == empID
select new AllowancePaid
{
TaxDiction = ??
};
var resultquery = query.SingleOrDefault();
已编辑 我正在从 xml 文件中进行选择,并希望将这些值插入到字典 (TaxDiction) 中。在我选择这两个值并将其插入单独的列表之前,如下所示:
list1 = nm.Element("ListOfTaxableAllowance").Elements("Amount").Attributes("BenListId").Select(a => (int)a).ToList(),
list2 = nm.Element("ListOfTaxableAllowance").Elements("Amount").Select(a => (double)a).ToList()
但是,这两个列表中的值是相关的,我想将它们插入字典。所以 list1 中的值将是键,而 list2 中的值将是我字典中的值。我认为这样会更有效,因为这些值是相关的。我希望这有助于澄清一些事情。谢谢。
已编辑
我试过了……
TaxDiction.Add(nm.Element("ListOfTaxableAllowance").Elements("Amount").Attributes("BenListId").Select(a => (int)a).ToList(),nm.Element("ListOfTaxableAllowance").Elements("Amount").Attributes("BenListId").Select(a => (int)a).ToList())
但是我得到了一个无效的初始化器成员声明器
XML 示例文件。
<EmployeeFinance>
<EmpPersonal_Id>494</EmpPersonal_Id>
<NonStatDedct>
<DeductedAmt NonStatID="1037">0</DeductedAmt>
<DeductedAmt NonStatID="106">5000</DeductedAmt>
</NonStatDedct>
<TotalDeduction>39909.83</TotalDeduction>
<TotalTaxableEarnings>120054.27</TotalTaxableEarnings>
<TotalNonTaxableEarnings>29500</TotalNonTaxableEarnings>
<No_DaysWorked>21.667</No_DaysWorked>
<Payperiod_EndDate>2014-02-28T00:00:00</Payperiod_EndDate>
<Exchange_Rate>207.00</Exchange_Rate>
<Currency>GYD</Currency>
<Date_Appointment>2009-11-30T00:00:00</Date_Appointment>
<Date_Employment>1994-12-01T00:00:00</Date_Employment>
<Date_Termination>0001-01-01T00:00:00</Date_Termination>
<Payperiod_StartDate>2014-02-01T00:00:00</Payperiod_StartDate>
<BatchNumber>3192</BatchNumber>
<PAYE_Free_Pay_Awarded>50000</PAYE_Free_Pay_Awarded>
<Income_Tax_RateID>4</Income_Tax_RateID>
<NIS_RateID>1</NIS_RateID>
<Daily_Rate>5540.881</Daily_Rate>
<NIS_weeks_worked>0</NIS_weeks_worked>
<Incentive />
<Retro>0</Retro>
<ListOfTaxableAllowance>
<Amount BenListId="4">0.00000</Amount>
<Amount BenListId="0">0</Amount>
</ListOfTaxableAllowance>
<ListOfTNonaxableAllowance>
<Amount BenListId="4">23500.00000</Amount>
<Amount BenListId="0">0</Amount>
</ListOfTNonaxableAllowance>
<ListOfTaxableBenefits>
<Amount BenListID="0">0</Amount>
</ListOfTaxableBenefits>
<ListOfNonTaxableBenefits>
<Amount BenListID="0">0</Amount>
</ListOfNonTaxableBenefits>
<ListOfTaxableAddIncome>
<Amount AddEarnID="14">0.00000</Amount>
</ListOfTaxableAddIncome>
<ListOfNonTaxableAddIncome>
<Amount AddEarnID="14">6000.00000</Amount>
</ListOfNonTaxableAddIncome>
<ListOfNISdeductible>
<Amount>0</Amount>
</ListOfNISdeductible>
<ListOfOtherTaxableAmount>
<Amount>0</Amount>
</ListOfOtherTaxableAmount>
<ListOfPartofPension>
<Amount>23500.00</Amount>
</ListOfPartofPension>
</EmployeeFinance>
【问题讨论】:
-
您当前的尝试有什么问题?解析异常?为什么你有两行完全相同的代码?示例 xml 在哪里?
-
我在上面进行了编辑.. 从 xml 读取很好。我可以选择将其插入列表,但是我认为如果我可以将其插入字典会更有效。我不知道如何将其插入字典。插入列表有效!
-
如果您继续阅读,您将看到 .. EDITED .. 我展示了我所做的尝试.. 请在发表评论之前先阅读整个问题。
-
@Maverick1415 您的问题不清楚。您正在尝试选择完全相同的值(这是错误的并且无法编译)但您仍然没有清楚地解释您的问题并且没有向我们展示xml 文件格式。如果您没有向我们提供足够的信息,我们如何为您提供帮助?
-
@Maverick1415 你想从这个文件中得到什么数据在字典里?
标签: c# xml linq dictionary