【发布时间】:2017-04-11 13:15:22
【问题描述】:
所以下面是我目前拥有的代码(它不起作用,因为最后一个块看到数组未定义,它是为了显示我想要做什么)
IEnumerable<string> sponsorshipQuery1 =
from runner1 in venueQuery6.Descendants("Runner")
where (int)runner1.Element("Sponsorship") > 0
orderby (int)runner1.Element("Sponsorship") descending
select runner1.Element("Firstname").Value;
IEnumerable<string> sponsorshipQuery2 =
from runner1 in venueQuery6.Descendants("Runner")
where (int)runner1.Element("Sponsorship") > 0
orderby (int)runner1.Element("Sponsorship") descending
select runner1.Element("Sponsorship").Value;
string[] nameArray;
string[] moneyArray;
foreach (string name in sponsorshipQuery1)
{
nameArray = sponsorshipQuery1
.OfType<object>()
.Select(o => o.ToString()).ToArray();
}
foreach (string money in sponsorshipQuery2)
{
moneyArray = sponsorshipQuery2
.OfType<object>()
.Select(o => o.ToString())
.ToArray();
}
Console.WriteLine("All sponsorship money raised in descending order:");
for (int i = 0; i < nameArray.Length; i++)
{
Console.WriteLine(nameArray[i] + " has raised £" + moneyArray[i]);
}
理想情况下,我希望能够在底部执行 for 循环。我猜想替换两个 foreach 循环并将它们设为 KeyValuePairs,但我不知道该怎么做。
我也是使用 Linq 查询的新手,所以我混合使用查询语法和 => 语法的原因是因为我学会了查询语法,但我也在尝试我在互联网上找到的代码.
【问题讨论】:
标签: c# arrays linq loops key-value