C#でオブジェクトのリストから特定の文字列を取得しようとしています(そのリストのuserlistを呼び出しましょう)(リストには約1600個の要素があり、パラメーター)。 だから、これは私が持っているコードです:プログラムはリストの残りの部分を無視しているようです
private List<String> getGameList(CommandEventArgs e) {
List<String> allgames = new List<string>();
List<User> userlist = e.Server.Users.ToList();
foreach (User u in userlist)
{
if (u.CurrentGame.ToString() != "")
{
if (u.CurrentGame.Value.Name != null)
{
allgames.Insert(0, u.CurrentGame.Value.Name);
}
}
}
return allgames;
}
しかし、それはより多くを取得する必要がありながら、それは毎回このコードのビットが返されるリストを実行することをその中に1つまたは2つの結果を持っています。
- ユーザー
- その下に約15パラメータ/オブジェクトとオブジェクトであるu.CurrentGameが「ユーザー」の下にある「ゲーム」と呼ばれるオブジェクトを取得しますコードに関する詳細情報を提供する
- u.CurrentGame.Value.Nameは、私が取得し、新たな「allgames」リストに追加したい文字列です
- 私はインサート(0、文字列)奇妙であると知っているが、何らかの理由での簡単な.Addはdidnの正しく動作していないようです。
なぜ1から2の結果しか持たないのですか? 必要に応じて、より多くの情報を確実に提供できます。
は私の推測では、あなたが早くreturn
またはあなたはおそらく使用されている必要がありますあなたのループ内のどこか
break
を持っているのどちらかということである完全なコードを見ることなく、あなた
をあなたはallgames.Add' 'に直面何が問題?あなたはコードをデバッグし、それがリストに値を挿入する回数を確認しましたか?あなたは 'u.CurrentGame.ToString()'と 'u.CurrentGame.Value.Name'がすべてのユーザにとってnullではないと確信していますか? –
予想される結果が失敗しているかどうかを確認し、そこから結論を引き出すには、if()にブレークポイントを挿入する必要があります。 – hoodaticus
オブジェクトにはパラメータがありません。 * "" User "の下にある" Game "というオブジェクト*は無意味です。実際に何を言っているのかを教えてください。ループの開始時にブレークポイントを設定し、それをステップ実行することで、何が起きているのかを簡単に知ることができます。 –