2016-08-18 4 views
0

私はC#に新しいので、実際にリストを使用したことはありません。私はこれまでに多くの良いことを得てきましたが、私は1つの問題にぶつかりました。変数がリストに変更されます<T>

public static List<player> data(string ply, int val) 
    { 
     string rtn = "-"; 
     List<player> playerdata = new List<player>() 
     { 
      new player() { plr = "player1", name = "pl A", one = 0, two = 0, twopair = 0 }, 
      new player() { plr = "player2", name = "pl B", one = 0, two = 0, twopair = 1 } 
     }; 

     var game = playerdata.Where(p => p.plr == ply); 

     foreach (var player in game) 
     { 
      player.one = val; //This is where my problem is 
      rtn = player.name; 
     } 
     return playerdata; 
    } 

したがって、foreachでは、player.et = val; ..それはうまく動作します。しかし、私は本当に "player.et"を動的な入力として持つことができたいと思っています。だから私は

data(string ply, int val, SOMETHING HERE) 

が、私はそれを行うにはどうすればよい

foreach (var player in game) 
    { 
     SOMETHING HERE = val; 
     rtn = player.name; 
    } 

にリンクされて送信することができますか?

ありがとうございます、事前に:D

+0

あなたの質問はちょっと混乱しています。あなたはあなたの質問を編集し、あなたがリストを使って何をしようとしているのか少し詳しく説明できますか?現在のコードは、投稿した内容に基づいてこの時点では作成されないため、探しているものを伝えるのは難しいです。 – JasCav

+0

さて、メソッドに別のパラメータを追加することができます。しかしこれはあまり意味がありません。ループの繰り返しごとに値を上書きするので、最後の割り当てだけがスティックされます。 – David

+0

あなたはあなたが 'ref'パラメータを持っていると言っているのですが、なぜならここに' val'を代入するために 'SOMETHING HERE'と' val'の両方であなたのメソッドを呼び出す何かがそうしないのでしょう'ref'パラメータを渡さずにFYI、 'ref'sは悪です:http://blog.devbot.net/conventions-refs/ – Smudge202

答えて

0

これは何ですか?

public static List<player> data(string ply, string property, int val) 
{ 
    string rtn = "-"; 

    List<player> playerdata = new List<player>() 
    { 
     new player() { plr = "player1", name = "pl A", one = 0, two = 0, twopair = 0 }, 
     new player() { plr = "player2", name = "pl B", one = 0, two = 0, twopair = 1 } 
    }; 

    playerdata.Where(p => p.plr == ply).ToList().ForEach(p => { 
     var propInfo = p.GetType().GetProperty(property); 
     if (propInfo != null) 
      propInfo.SetValue(p, val, null); 
     rtn = p.name; 
    }); 

    return playerdata; 
} 
+0

ええ、私はすべてのifsなしでそれを好きになるでしょう。私は60の入力可能性を持っていると言いましょう、それは少しばかげているでしょう。だから私が欲しいのは、pの後の部分です。動的になります。 – Hudlommen

+0

@Hudlommenこれはいかがですか? –

+0

はい、それは動作します。素晴らしい! :D – Hudlommen

関連する問題