用于在 C# 中分析文件的数据结构
本文关键字:文件 数据结构 用于 | 更新日期: 2023-09-27 18:33:09
我有一个以下格式的文件,由不同行的多个条目组成。导演名称 电影名称 总收入 .例如
abc movie1 1mill
xyz movie2 2mill
abc movie3 1mill
abc movie2 4mill
导演名称重复,电影名称也是如此(导演 1 可以导演与导演 2 同名的电影)? 解析文件的最佳方式是什么,同时提供获取详细信息的能力,例如导演的总收入。我打算有一个字典词典,
类似 Dictionary<string, Dictionary<string,long>>
外部字典的键是导演名称,内部字典的键是电影名称。我可以通过将我的内部字典包装在自定义类中来使其看起来更好,但我想知道是否有更好的方法来解决这个问题。另外,我将如何设计它,以便以后我的文件添加了流派,演员等其他内容,我仍然不必进行完全重新设计,同时提供按流派或演员分组的能力
您可以使用带有
泛型列表的自定义类,而不是使用字典。
你可以创建一个类,比如
public class Director {
public string StrDirector { get; set; }
public string StrMovie { get; set; }
public Long Revenue { get; set; }
}
然后使用
List<Director> LstEntity = new List<Director>();
Director objDirector = new Director();
objDirector.StrDirector = "abc";
objDirector.StrMovie = "xyz";
objDirector.Revenue = 1000;
LstEntity.Add(objDirector);
//Add each Director Same way
这样,将来如果需要对控制器的属性进行任何修改,可以通过更新类轻松进行,没有任何问题。
我希望这将解决您的问题。
我会先添加一个类
public class Movie
{
public string MovieName {get;set;}
public DateTime ProductionDate {get;set}
public decimal Revenue {get;set;}
public List<MoviePerson> Stuff {get;set;}
}
public class MoviePerson
{
public enum PersonType{Actor,Director, ....}
public string Name {get;set;}
public string Surname {get;set;}
public PersonType Duty {get;set}
...
}
拥有Movies
的集合,您可以简单地查询它以获取导演,例如
List<Movie> movies = new List<Movie>();
....
MoviePerson director =
new MoviePerson {Name = "James",
Surname = "Cameron",
PersonType = Director}
from movie in movies where movie.Stuff.Contains(director) select movie
要完成这项工作,您必须覆盖MoviePerson
的默认引用比较。
这些只是想法,您必须根据自己的需求进行调整。
希望这有帮助。