C# 跳过并执行后对象字典的强制转换结果
我有一本这样定义的对象字典-C# 跳过并执行后对象字典的强制转换结果,c#,linq,C#,Linq,我有一本这样定义的对象字典- Dictionary<string, MyObject> myObjectDictionary Skip/Take操作的结果将不是IDictionary,而是IEnumerable 如果要将其转换回字典,请尝试调用: 那么,您可以创建一个新词典: Dictionary<string, MyObject> myNewObjectDictionary = myObjectDictionary.Skip(startNumber)
Dictionary<string, MyObject> myObjectDictionary
Skip
/Take
操作的结果将不是IDictionary
,而是IEnumerable
如果要将其转换回字典,请尝试调用:
那么,您可以创建一个新词典:
Dictionary<string, MyObject> myNewObjectDictionary =
myObjectDictionary.Skip(startNumber)
.Take(count)
.ToDictionary(pair => pair.Key, pair => pair.Value);
FillMyObjectDictionary
是否使用自定义比较器您是否知道
mySmallerObjectDictionary
的内容将是不确定的?索引和字典不会混合,因为字典(或任何哈希表结构)的枚举顺序未定义。不要依赖于插入顺序与枚举顺序相同。如果事情按预期进行,这只是一个巧合。+10表示“这不保留原始词典中的任何自定义相等比较器”
var myNewObjectDictionary = mySmallerObjectDictionary.ToDictionary(p => p.Key, p => p.Value);
Dictionary<string, MyObject> myNewObjectDictionary =
myObjectDictionary.Skip(startNumber)
.Take(count)
.ToDictionary(pair => pair.Key, pair => pair.Value);
Dictionary<string, MyObject> myNewObjectDictionary =
myObjectDictionary.OrderBy(pair => pair.Key)
.Skip(startNumber)
.Take(count)
.ToDictionary(pair => pair.Key, pair => pair.Value);