如何重写我的for循环使用更短的代码

本文关键字:代码 循环 for 何重写 重写 我的 | 更新日期: 2023-09-27 18:09:24

我有一些代码,我希望可以重写使用更短的代码。代码工作得很好,但我只是觉得代码是循环的。这里有一些关于代码的基本知识字典字典= settings.files;occurs是一个具有某些属性的对象,但其中一个名为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;
        }
    }
}

如何重写我的for循环使用更短的代码

filteredList = (from entry in dict where entry.Value && occurence.FileName.StartsWith(entry.Key) select occurence).ToList();

也许在某处插入换行符会有帮助。

Edit:令我震惊的是,列表将只包含相同对象occurences的重复,因为这并不依赖于代码中的索引j

这是一个开始

foreach(var j in settings.files.Where(x => occurences.Filename.StartsWith(x.Key))
{
    filteredList.Add(j);
}

但是它远没有达到你的需要,因为你的代码没有意义——至少对我来说。