如何在 C 尖锐中添加类属性的对象到列表中

本文关键字:属性 对象 列表 添加 | 更新日期: 2023-09-27 18:35:21

我无法将类实例正确添加到列表中。它仅添加最后一个对象。当我调试列表词汇表时,仅显示添加最后一个类实例。因此,通过第二次循环,它有两个第二个对象的条目,通过第三次循环,它有三个第三个对象的条目。我做错了什么。这是我的代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace myVocabulary
{
    public class Word
    {
        string _original_word;
        string _translated_word;
        public string Original_Word
        {
            get
            {
                return this._original_word;
            }
            set
            {
                this._original_word = value;
            }
        }
        public string Translated_Word
        {
            get
            {
                return this._translated_word;
            }
            set
            {
                this._translated_word = value;
            }
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace myVocabulary
{
    class Program
    {
        static List<Word> vocabulary = new List<Word>();
        static void Main(string[] args)
        {
            Word entry = new Word();
            for (int i = 0; i < 5; i++)
            {
                Console.WriteLine("Enter word");
                entry.Original_Word = Console.ReadLine();
                Console.WriteLine("Enter Translation");
                entry.Translated_Word = Console.ReadLine();
                vocabulary.Add(entry);
            }           
        }
    }
}

如何在 C 尖锐中添加类属性的对象到列表中

试试这个 - 你需要在循环的每次迭代中创建一个新的Word对象,否则你只是重复覆盖同一个实例。

namespace myVocabulary
{
    class Program
    {
        static List<Word> vocabulary = new List<Word>();
        static void Main(string[] args)
        {
            for (int i = 0; i < 5; i++)
            {
                Word entry = new Word();
                Console.WriteLine("Enter word");
                entry.Original_Word = Console.ReadLine();
                Console.WriteLine("Enter Translation");
                entry.Translated_Word = Console.ReadLine();
                vocabulary.Add(entry);
            }           
        }
    }
}
相关文章: