0

我创建了一个包含 3 个浮点数和 3 个矩形的字典。之后,我创建一个列表来对字典进行排序。最低浮动应该是列表中的第一个条目。最后,我希望该变量FirstRectInList与列表中第一个条目的 Rectangle 具有相同的值。但我总是收到此错误消息:

无法将类型“float”隐式转换为“Microsoft.Xna.Framework.Rectangle”

怎么了?变量FirstRectInList应该得到字典的值:(0, 0, random.Next(101), random.Next(101))。而不是字典的键。

Dictionary<float, Rectangle> Users = new Dictionary<float, Rectangle>();

for (int j = 0; j <= 3 - 1; j++)
{
  float Points = random.Next(101);
  Users.Add(Points, new Rectangle(0, 0, random.Next(101), random.Next(101)));
}
var list = Users.Keys.ToList();
list.Sort();

Rectangle FirstRectInList = list[0];
4

1 回答 1

3

list仅包含字典类型的键floatUsers它不包含 type 的值Rectangle
因此,list[0]返回最小的键而不是Rectangle最小的键。

要实现您想要做的事情,您可以使用 LINQ:

Rectangle FirstRectInList = Users.OrderBy(x => x.Key).First().Value;
于 2013-04-22T12:35:31.767 回答