Вместо списка строк можно использовать собственный класс
public class MyFile
{
public string Name;
public bool isOpen;
public MyFile(string name)
{
Name = name;
isOpen = false;
}
}
List<MyFile> lsf = new List<MyFile>()
{
new MyFile("test0"),
new MyFile("test1"),
new MyFile("test2"),
new MyFile("test3"),
new MyFile("test4")
};
Чем при чтении файла установить isOpen
в true
MyFile[someIndex].isOpen = true;
и позже вы можете проверить это
// E.g. skip in a loop
if(MyFile[someIndex]) continue;
Вы можете также использовать Linq
, чтобы получить список только непрочитанных файлов:
var unreadFiles = lsf.Select(f => f.Name).Where(file => !file.isOpen);