将通用列表中的第一行分配给Object

时间:2013-04-05 01:24:33

标签: c# .net c#-4.0

我有一个包含多个值的Generic List<SomeCode>列表。

我正在尝试将列表中的第一行传递给对象:

if(list.count==1)
    SomeCode sc = list[0];

你能告诉我为什么会这样吗?

这是我的班级

public class SomeCode
{
    private int _Somecodeid;
    private string _Somecodeescription;
    private string _Somecode;

    public int SomeCodeId
    {
        get { return _Somecodeid; }
        set { _Somecodeid = value; }
    }

    public string SomeCodeDescription
    {
        get { return _Somecodeescription; }
        set { _Somecodeescription = value; }
    }

    public string Code
    {
        get { return _Somecode; }
        set { _Somecode = value; }
    }
}

我填充了一个列表LIST列表。 该方法包含一个对象 SomeCode sc = new SomeCode

现在我将第一行指定为对象

if(list.count==1)
    SomeCode sc = list[0];

然后除Code以外的所有值都被分配。

除了第一个项目之外,它将获取列表中的所有项目。第一项打印如下:

"sc.SomeCode= SomeCode"s

然而,其他值正确添加 sc.SomeCodeDescription =&#34;你好&#34 ;;等等

当我明确指定值时,它可以工作:

sc.firstItem = list[0].firstItem

2 个答案:

答案 0 :(得分:1)

尝试重载“=”运算符并指定匹配值。 像这样的东西 http://msdn.microsoft.com/en-us/library/aa288467(v=vs.71).aspx

答案 1 :(得分:1)

如果您的目标框架是3.5或更高,我认为您正在寻找的是使用LINQ提供的。请记住,您必须导入System.Linq;试试这样的事情,

if(list.count==1)
  SomeCode sc = list.First();