从方法返回数组值

时间:2016-09-27 19:53:52

标签: c#

所以这可能会引起很多仇恨,因为这是一个真正的新手错误,但我有一个任务,我有一个图书馆列表,其中包含他们的ISBN号,作者等等。我是无法使用其信息返回每本书的值。我需要程序使用我输入的信息创建两个csv文件并写入我在Console.WriteLine中编写的文本。因为我刚刚开始编程,所以你可能会遇到很多错误。这是代码:

using System;
using System.IO;

namespace ConsoleApplication2
{
    class Program
    {    
        static void Main(string[] args)
        {   
            foreach (string line in File.ReadAllLines(@"Duomenys.txt"))
            {
                string[] a = line.Split(',');
                long ISBN = Convert.ToInt64(a[0]);
                string BookName = a[1];
                string Author = a[2];
                string Genre = a[3];
                string Publisher = a[4];
                int PublishYear = Convert.ToInt32(a[5]);
                int PageNumber = Convert.ToInt32(a[6]);
                Console.WriteLine(PublishYear);
                Console.WriteLine();    
            }
        }

        public void BookWithTheMostPages(int[] a)
        {
            int maxPages = 0;
            string[] lines = File.ReadAllText(@"Duomenys.txt").Split('\n');
            foreach (string line in lines)
            {
                {
                    Console.ReadLine();
                    if (a[6] > maxPages)
                    {
                        maxPages = a[6];

                        Console.WriteLine("Storiausios knygos pavadinimas: {0} , jos autorius(-ė): {1}", a[1], a[2]);
                    }
                }
            }
        }

        public void Publish(string[] a)
        {
            if (!File.Exists(@"Technologija.csv"))
                File.Create(@"Technologija.csv").Dispose();
            using (StreamWriter streamwrite = new StreamWriter(File.OpenWrite(@"Technologija.csv")))
            {
                if (a[2] == "Technologija")
                {
                    streamwrite.WriteLine("\n ISBN : {0}, Pavadinimas: {1}, Autorius: {2}, Tipas: {3}, Leidykla: {4}, Išleidimo Metai: {5}, Puslapių skaičius: {6}", a[0], a[1], a[2], a[3], a[4], a[5], a[6]);
                }
            }
        }

        public void Output(string[] a)
        {
            if (!File.Exists(@"Autoriai.csv"))
                File.Create(@"Autoriai.csv").Dispose();

            using (StreamWriter streamWriter = new StreamWriter(File.OpenWrite(@"Autoriai.csv")))
            {
                streamWriter.WriteLine("\n{0}", a[2]);
            }
        }
        public void Publishyear(string[] a)
        {
            if (a[5] == "2014")
            {
                for (int j = 1; j <= 5; j++)
                    Console.WriteLine("\nKnygos ISBN: {0}, Pavadinimas {1}, Autorius {2}", a[0], a[1], a[2]);
            }
        }
    }
}

1 个答案:

答案 0 :(得分:1)

首先欢迎编程!关于c#的一个好处是它的面向对象,你应该利用这个!创建一个书类来保存您的数据并操作它将更容易。此外,如果您尝试返回数据,则void关键字表示您编写的函数没有返回值,因此您将无法获得任何返回值。这是一个让你入门的例子。

class Program
{
    static void Main(string[] args)
    {
        List<Book> books = new List<Book>;
        foreach (string line in File.ReadAllLines(@"Duomenys.txt"))
        {
            Book newBook = new Book();
            string[] a = line.Split(',');
            newBook.ISBN = a[0];
            newBook.bookName = a[1];
            newBook.author = a[2];
            newBook.genre = a[3];
            newBook.publisher = a[4];
            newBook.yearPublished = Convert.ToDateTime(a[5]);
            newBook.numberOfPages = Convert.ToInt32(a[6]);

            books.Add(newBook);
        }

        foreach (Book book in books)
        {
           // do stuff here!
        }
}

class Book
{
    public string ISBN { get; set; }
    public string bookName { get; set; }
    public string author { get; set; }
    public string genre { get; set; }
    public string publisher { get; set; }
    public DateTime yearPublished { get; set; }
    public int numberOfPages { get; set; }        
}