2010-08-30 62 views
2

我有一个类型为List<Thread>的变量FirstThreads。对象为空。如何设置它? c#

我正在尝试做以下操作,但FirstThreads始终为空。

FirstThreads.AddRange(Threads.Skip<Thread>(PageIndex * PageSize) 
      .Take<Thread>(PageSize)); 

我不能做到这一点:

FirstThreads = FirstThreads.AddRange(Threads.Skip<Thread>(PageIndex * PageSize) 
              .Take<Thread>(PageSize)); 

你有任何想法如何解决这个问题?

回答

9

之前,你可以用FirstThreads变量相互作用,你需要做的 变量指List<Thread>实例,就像这样:

firstThreads = new List<Thread>(); 

你也可以写

firstThreads = Threads.Skip<Thread>(PageIndex * PageSize).Take<Thread>(PageSize) 
3

你需要首先实例化列表,我认为它是一个List<Thread>

所以

FirstThreads = new List<Thread>(); 
5

需要初始化你List<FirstThreads>第一。

任何对象的默认值是null

例如:

List<FirstThreads> firstThreads = new List<FirstThreads>(); 
firstThreads.AddRange(collection); 
3

您需要实例List对象:

List<Thread> FirstThreads = new List<Thread>(); 
1

您可以使用

FirstThread = 
    new List<Thread>(Threads.Skip<Thread>(PageIndex * PageSize) 
          .Take<Thread>(PageSize)); 

或者,如果你不知道它是否有项目并且已经实例化了

(FirstThread ?? FirstThread = new List<Thread>()) 
    .AddRange(Threads.Skip<Thread>(PageIndex * PageSize) 
    .Take<Thread>(PageSize)); 

注:

你也许可以取出<Thread>SkipTake方法,因为它会被推断。

1

问题是,如果您编写FirstThreads.AddRange,则暗示FirstThreads是带有AddRange方法的对象;但是FirstThreads为null,这意味着它是空的(所以它没有方法)。
你将不得不作出FirstThreads空单:

FirstThreads = new List<Thread>(); 
1

FirstThreads要么被设置为空或从未初始化。无论哪种方式,我的猜测是你需要创建一个对象分配给它。

FirstThreads =新< - Visual Studio将自动完成对象的创建代码

2

如果有疑问的“新”的关键字总是值得一试

相关问题