文件中文本是否匹配的问题将其视为一个C#

时间:2018-09-19 17:21:22

标签: 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);
    }

嘿,我的项目只需要最后一段,所以请尝试完成它。因此,如果发布者相同,则上面的代码应仅打印出一个发布者,但是它将打印出从数据文件中读取的所有发布者。

例如:

给出的数据为(书名;出版商):

  • 哈利·波特;彭布斯伯里出版
  • 哈利·波特;彭布斯伯里出版
  • 哈利·波特;彭布斯伯里出版社
  • 汤姆·索亚;布拉布拉

现在如何打印:

  • Bloomsbury Publishing
  • Bloomsbury Publishing
  • Bloomsbury Publishing
  • BlaBla

以及如何打印:

  • Bloomsbury Publishing
  • BlaBla

感谢帮助人员,希望您度过一个愉快的一天/夜晚。

1 个答案:

答案 0 :(得分:2)

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列表上进行迭代,这就是为什么您获得相同的发布者输出的原因。