如何在课堂上使用List

时间:2012-11-17 10:38:45

标签: c#

我有同义词,下面是:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;


namespace Examples.NET
{
    public class Synonym
    {
        private string _kata;
        private List<string> _sinonim;

        public String Kata
        {
            get { return _kata; }
        }
        public List<string> Sinonim 
        {
            get 
            {
                return _sinonim; 
            }
        }

        public Synonym(string kata)
        {
            _kata = kata;
            List<string> _sinonim = new List<string>();

            XDocument xDoc = XDocument.Load("http://www.stands4.com/services/v2/syno.php?uid=2319&tokenid=LSRyvL5mGsHpEi4&word=" + kata);
            var sinonim = from isi in xDoc.Descendants("result")
                          select new
                          {
                              sinom = isi.Descendants("synonyms").First().Value
                          };
            foreach (var s in sinonim)
            {
                _sinonim.Add(s.sinom);
            }
        }

    }
}

在主程序中,我的代码如下:

Synonym Syn = new Synonym("buy");

System.Console.WriteLine(Syn.Kata);

var sinom = from s in Syn.Sinonim
            select s;
foreach (var item in sinom)
{
  System.Console.WriteLine("data: " + item);
}

但是,有错误:在主程序中:“从S中......选择S” ===========&gt;&gt;值不能为空。 AND参数名称:source

我猜在课堂上有错误

  public List<string> Sinonim 
  {
   get{ return _sinonim;}
  }

1 个答案:

答案 0 :(得分:1)

这表明您的私人列表变量永远不会被分配,而不是。

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

这会隐藏私有实例,因为名称相同。将构造函数中的那一行更改为this并且它应该可以正常工作

_sinonim = new List<string>();