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

时间:2013-04-22 12:32:44

标签: c# xna

我创建了一个包含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];

1 个答案:

答案 0 :(得分:3)

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

要实现您的目标,您可以使用LINQ:

Rectangle FirstRectInList = Users.OrderBy(x => x.Key).First().Value;