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];

然后分配除代码之外的所有值。

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

"sc.SomeCode= SomeCode"s

但是其他值被正确添加 sc.SomeCodeDescription = "Hello"; ETC

当我明确分配值时,它会起作用:

sc.firstItem = list[0].firstItem
4

2 回答 2

1

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

于 2013-04-05T02:12:13.850 回答
1

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

if(list.count==1)
  SomeCode sc = list.First();
于 2013-04-15T22:06:39.740 回答