我创建了一个包含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];
答案 0 :(得分:3)
list
仅包含float
字典的Users
类型的键。它不包含Rectangle
类型的值
因此,list[0]
返回最小的密钥,而不是最小密钥的Rectangle
。
要实现您的目标,您可以使用LINQ:
Rectangle FirstRectInList = Users.OrderBy(x => x.Key).First().Value;