2013-03-07 62 views
0

这是我的疑惑之一: 如果我有一个像ABC这样的类,它有三个项目,如A,B,C(字符串类型)。 我为A运行循环,然后在列表中添加obj。 我再次运行一个B循环,然后将obj添加到List。 C也一样。追加(不添加)列表中的对象的项目

现在这不是我想要的。我从不想在每个循环之后添加obj。相反,我想在最后添加它们,以便列表只包含一个而不是三个。 这可能吗?

我知道如何将列表添加到另一个等,但我期待追加(不添加)。 更新: 嗯,我已经在我的问题中提到了这一点,我正在进一步解释。

public List<ABC> Method() 
    { 
    //Linq Query to get records 
     List<ABC> Lst = new List<ABC>(); 
     foreach (var result in Linq) 
     { 
      ABC obj = new ABC(); 
     //here I make sub query to get A and add obj in list and adding in list 
     } 
     foreach (var result1 in Linq) 
     { 
      ABC obj = new ABC(); 
     //here I make sub query to get B and add obj in list and adding in list 
     } 
     foreach (var result1 in Linq) 
     { 
      ABC obj = new ABC(); 
     //here I make sub query to get C and add obj in list and adding in list 
     } 
     return Lst; 
    } 

In my List I get: 
Count1=A,null,null 
Count2=null,B,null 
Count3=null,null,C 

我希望得到

Count1=A,B,C. 
+4

添加一些相关的代码,否则这个问题令人困惑 – Habib 2013-03-07 09:05:42

+1

'Add'方法*是*追加;我认为你需要澄清你正在寻找的区别。 Re“我从来不想在每个循环后添加obj” - 那么为什么每次循环后都添加obj,如果这不是你想要做的? – 2013-03-07 09:06:31

+1

你的意思是像'myList.Add(aFound + bFound + cFound);'?? – Oliver 2013-03-07 09:07:55

回答

0

如果你希望所有的值是唯一的,你可以使用HashSet的,看到http://msdn.microsoft.com/en-us/library/bb359438.aspx

如果您仍需要一个列表,你可以在变换结束使用ToList。

+2

如果您使用散列集,必须注意的是,不保证任何订单 – 2013-03-07 09:08:56

+0

良好的调用,在这种情况下,SortedSet 可能更合适,如果要保留订单并且您可以使用.NET 4 http ://msdn.microsoft.com/en-us/library/dd412070.aspx – chrisw 2013-03-07 09:11:46

+1

排序顺序不同于插入顺序:) – 2013-03-07 09:25:20