【解決方法】これらの条件を最適化する方法


こんにちは、みんな、

外部ソースから ID を受信して​​表示する DataGridView があります。 各IDのニックネームは分かります。

「ID」列で、セル ID 0 に対応するニックネームを確認するにはどのように最適化しますか?

これは私がやったことの例です (以下を参照)。これはうまく機能しますが、ニックネームを持つ ID が 200 近くあるため、IF 条件が長すぎます。

メンバーのすべてのニックネームを含むリストをチェックするループのような、より最適化された方法をご存知ですか? 私の言いたいことを理解していただけたと思います 😉

ありがとう

私が試したこと:

C#
string id = row.Cells[0].Value.ToString();
var nom = "";

if (id == "FB23E1A8B7E2944FAAEC6219BBDF8243")
{
  nom = "Pseudo 1";
}
else if (id == "FE63D6040E22611D978B73064B3A2057")
{
  nom = "Pseudo 2";
}
else if (id == "0D44A8E3F29D9E568FE31C7DE45A80E0")
{
  nom = "Pseudo 3";
}

解決策 1

条件が良くない場合は200でこのアプローチ。
Dictionary と呼ばれる、より優れたメカニズムがあります。
Dictionaryの説明はここにあります C# 辞書[^]

解決策 2

TheRealSteveJudge の言ったことに付け加えると、ID 値は GUID であるため、文字列に変換するのではなく、GUID 値として使用してください。

C#
var knownUsers = new Dictionary<Guid, string>();

その後、(たとえば) JSON ファイルから辞書をロードすることができ、コードは単純になります。「GUID は辞書にありますか? ない場合、私たちは彼を知りません。もしあれば、それをキーとして使用して、辞書にアクセスします」エイリアス。”
文字通り 2 行または 3 行のコードで、毎回アプリを変更することなくメンバーシップを変更できます。

コメント

タイトルとURLをコピーしました