c# - 文件中的文本是否匹配的问题将其计为一个 c#
问题描述
List<string> AllPublishers(List<Book> books)
{
List<string> publishers = new List<string>();
foreach (Book book in books)
{
if (!publishers.Contains(book.Publisher))
{
publishers.Add(book.Publisher);
}
}
return Publishers;
}
void PublishersList(List<Book> books)
{
string[] lines = new string[books.Count];
for (int i = 0; i < books.Count; i++)
{
lines[i] = String.Format("{0}", books[i].);
}
File.WriteAllLines(@"Publishers.csv", lines);
}
嘿,我的项目只需要最后一段,所以试着完成它。因此,如果发布者相同,上面的代码应该只打印出一个发布者,而是打印出它从数据文件中读取的所有发布者。
例如:
给出的数据是(书名;出版商):
- 哈利波特;布卢姆斯伯里出版社
- 哈利波特;布卢姆斯伯里出版社
- 哈利波特;布卢姆斯伯里出版社
- 汤姆·索亚;BlaBla
它现在的打印方式是:
- 布卢姆斯伯里出版社
- 布卢姆斯伯里出版社
- 布卢姆斯伯里出版社
- 布拉布拉
以及它应该如何打印:
- 布卢姆斯伯里出版社
- 布拉布拉
感谢您的帮助,希望您有一个美好的一天/晚上。
解决方案
在PublishersList
,我猜你需要类似的东西:
var publisherList = AllPublishers(books);
真正得到出版商。然后,在方法的其余部分使用publisherList
而不是。book
string[] lines = new string[publisherList.Count];
for (int i = 0; i < publisherList.Count; i++)
{
lines[i] = String.Format("{0}", publisherList[i].);
}
File.WriteAllLines(@"Publishers.csv", lines);
就目前而言,您只是在迭代books
列表,这就是您获得相同发布者输出的原因。
推荐阅读
- ios - 如何解决 AppStore 拒绝问题
- php - Mysql外键(150外键约束形成错误)
- azure - Azure IoT Central 连接真实设备。(连接字符串问题)
- java - 如何放心地将数组插入JSONArray
- kubernetes - Confluent Schema Registry Kubernetes 挂起
- tfs - 如何从私有 azure devops 提要中恢复 nuget 包?
- amazon-web-services - CodeDeploy 失败并显示消息“PKCS7 签名消息的验证失败”
- javascript - javascript拦截来自网络工作者的http获取+文件url
- django - 以编程方式序列化 Wagtail 页面
- nginx - 无法使用 Nginx-ingress 在 Kubernetes 中升级 websocket 连接