首页 > 解决方案 > 如何将数据传递给列表?

问题描述

对于初学者的问题,我很抱歉。我很难弄清楚为什么我不能传递从 Console.Readline 获取的数据并将其传递给我的列表。

我正在努力提高编码能力,但我倾向于使事情变得过于复杂。

我在这里做的事完全愚蠢吗?

using System;
using System.Collections.Generic;

namespace BB1
{
    public class Client
    {
        public string Telefon { get; set; }
        public string Navn { get; set; }
        public string Addresse { get; set; }
        public int Postnummer { get; set; }
        public string By { get; set; }
        public string Email { get; set; }

        List<string> client = new List<string>();

        public void AddToList()
        {

            client.Add("Navn" + Navn + "Telefon" + Telefon);
        }
        public static void Main(string[] args)
        {



            var client = new Client();
            int tl;

            Console.WriteLine("Indtast dit navn her");
            client.Navn = Console.ReadLine();

            Console.Write("Indtast dit TLF nummer: ");
            client.Telefon = Console.ReadLine();

            bool success = int.TryParse(client.Telefon, out tl);

            while (!success)

            {
                Console.WriteLine("Du har indtastet et ugyldigt nummer");
                client.Telefon = Console.ReadLine();
                success = int.TryParse(client.Telefon, out tl);

            }

            Console.WriteLine("TEST to see if client list is updated");
            Console.ReadKey();
            Console.WriteLine(client);
            Console.ReadKey();
        }```


**NEW CODE**
    List<Client> client = new List<Client>();
    public override string ToString()
    { return "Client: " + Navn + " " + Telefon; }


    public static void Main(string[] args)
    {

        var client = new Client();


        int tl;

        Console.WriteLine("Indtast dit navn her");
        client.Navn = Console.ReadLine();

        Console.Write("Indtast dit TLF nummer: ");
        client.Telefon = client.Add(Console.ReadLine());```

它给了我错误“客户端”不包含“添加”的定义,并且找不到接受“客户端”类型的第一个参数的可访问扩展方法“添加”(您是否缺少 using 指令或程序集引用

我该如何解决这个问题(对不起,我有点累了,整天都坐着这个)。

标签: c#list

解决方案


首先在单独的 .cs 文件中添加类 Client。

public class Client
{
    public string Telefon { get; set; }
    public string Navn { get; set; }
    public string Addresse { get; set; }
    public int Postnummer { get; set; }
    public string By { get; set; }
    public string Email { get; set; }

    public override string ToString()
    {
        return $"Navn: {Telefon}, Telefon: {Navn}, Addresse: {Addresse}, Postnummer: {Postnummer}, By: {By}, Email: {Email}";
    }
}

然后在 Program.cs 文件中添加静态客户端列表列出客户端(请参阅下面的代码),您将在输入客户端数据后填写。

class Program
{
    static List<Client> clients = new List<Client>();

    static void Main(string[] args)
    {
        var client = new Client();
        int tl;

        Console.WriteLine("Indtast dit navn her");
        client.Navn = Console.ReadLine();

        Console.Write("Indtast dit TLF nummer: ");
        client.Telefon = Console.ReadLine();

        bool success = int.TryParse(client.Telefon, out tl);

        while (!success)
        {
            Console.WriteLine("Du har indtastet et ugyldigt nummer");
            client.Telefon = Console.ReadLine();
            success = int.TryParse(client.Telefon, out tl);
        }

        clients.Add(client);

        Console.WriteLine("TEST to see if client list is updated");
        Console.WriteLine(client);

        Console.WriteLine("Print all clients in list");
        foreach (var c in clients)
        {
            Console.WriteLine(c.ToString());
        }

        Console.ReadLine();
    }
}

在您的代码中,您将客户端列表定义为字符串列表,如果您想在客户端列表中添加字符串而不是客户端对象,您只需在客户端对象中填充数据后添加这行代码。

clients.Add($"Navn: {client.Navn}, Telefon: {client.Telefon}");

如果您希望您的代码正常工作,请不要忘记将客户列表称为客户。

List<string> client = new List<string>();

推荐阅读