【发布时间】:2018-06-17 11:35:06
【问题描述】:
在下面的代码中,我正在检查 ObservableCollection 中是否存在某个项目,如果存在,我想获取它的索引,以便我可以将该项目移动到顶部,但我无法弄清楚。
我的对象:
public class RecentFile
{
public string FileName { get; set; }
public string DateAdded { get; set; }
}
查找项目索引的代码:
if (recentFilesObservableCollection.Any(f => f.FileName == "MyFileName")) {
foreach (RecentFile file in recentFilesObservableCollection) {
if (file.FileName == "MyFileName") {
var x = RecentFilesDataGrid[(recentFilesObservableCollection.IndexOf(file)];
}
}
}
如果项目存在,获取索引号的最佳方法是什么?
最终我需要做的是……
- 检查项目是否存在
- 如果确实将其移至列表顶部
【问题讨论】:
-
var index = 0;在foreach之外。index++在(内部)foreach的末尾。或者考虑stackoverflow.com/questions/2471588/how-to-get-index-using-linq。 -
你试过
var index = 0; foreach (RecentFile file in recentFilesObservableCollection) { if (file.FileName == "MyFileName") { recentFilesObservableCollection.Move(index, 0); break; } index++; }吗?请注意,Any不是必需的。
标签: c#