0

ユーザータイプの新しい空のリストを作成しました(ユーザーは EDM のエンティティです)。

List<User> AvailableLocums = new List<User>();
AvailableLocums = null;

また、クエリの結果が入力されたタイプUserの別のリストもあります

List<User> Locums = _shiftDateService.GetAvailableLocums(id, shiftDate.shiftDateID).ToList();

次に、 Locumsリストをループし、いくつかのロジックを実行してから、ユーザーをAvailableLocumsリストに追加します。

foreach (var locum in Locums)
{
   //Do some logic

   AvailableLocums.Add(locum);

}

ただし、これを実行しようとすると、次のエラーが発生します

オブジェクト参照がオブジェクト インスタンスに設定されていません。

次に、コードを修正して次のことを試みました

foreach (var locum in Locums)
{
       //Do some logic

       User locumUser = new User();
       locumUser = locum;

       AvailableLocums.Add(locumUser);     
}

しかし、再び同じエラーが発生します

オブジェクト参照がオブジェクト インスタンスに設定されていません。

誰かがこれで私を助けてくれますか?

ありがとう。

4

5 に答える 5

5

変数「AvailableLocums」に、メモリ内の何も指さないように指示しています。

削除: AvailableLocums = null;

どうですか:

List<User> AvailableLocums;
List<User> Locums;

// get id for shift date service
// int id = ...

// get locums from shift date service 
Locums = _shiftDateService.GetAvailableLocums(id, shiftDate.shiftDateID).ToList();

// time to add to AvailableLocums
if(AvailableLocums == null)
    AvailableLocums = new List<User>();

foreach (var locum in Locums)
{
   //Do some logic

   AvailableLocums.Add(locum);
}
于 2012-09-18T11:01:24.800 に答える
3

あなたはそのリストを無効にしています

List<User> AvailableLocums = new List<User>();
AvailableLocums = null; // HERE

したがって、例外です。空のリストを作成するために次の行は必要ありません。

AvailableLocums = null;
于 2012-09-18T10:57:16.813 に答える
1

この行を取得します:

AvailableLocums = null;

それはOKです...新しいオブジェクトを宣言し、次の行でそれをnullに設定しますか?

于 2012-09-18T10:58:17.623 に答える
0

このコードを試してください。

List<User> AvailableLocums = null; 
List<User> Locums = _shiftDateService.GetAvailableLocums(id, shiftDate.shiftDateID).ToList();  
AvailableLocums = Locums.Where(newUserRecord => newUserRecord != null).ToList();

*「newUserRecord」の代わりに任意の名前を使用できます。

于 2012-09-18T11:46:13.040 に答える
0

しようとする

List<User> Locums = new List<User>();

_shiftDateService.GetAvailableLocums... の前に

于 2012-09-18T10:59:46.720 に答える