我有一些代码,希望可以重写以使用更短的代码。 代码工作正常,但我觉得代码是循环的。 这里有一些基本的代码 字典dict = settings.files; occurences是具有某些属性的对象,但其中一个名为FileName
string fileNameShort;
List<Common.Occurences> filteredList = new List<Occurences>();
//Lookup the right dictionary item for given filename in occurences
for (int j = 0; j < settings.files.Count; j++)
{
if (occurences.FileName.StartsWith(dict.Keys.ElementAt(j)))
{
fileNameShort = dict.Keys.ElementAt(j);
if (dict[fileNameShort])
{
filteredList.Add(occurences);
break;
}
}
}
答案 0 :(得分:0)
filteredList = (from entry in dict where entry.Value && occurence.FileName.StartsWith(entry.Key) select occurence).ToList();
在某处插入换行符可能会有所帮助。
编辑但令我震惊的是,该列表只包含同一对象occurences
的重复,因为这不依赖于代码中的索引j
答案 1 :(得分:0)
这是一个开始
foreach(var j in settings.files.Where(x => occurences.Filename.StartsWith(x.Key))
{
filteredList.Add(j);
}
但它远远不能满足您的需求,因为您的代码毫无意义 - 至少对我而言。