ユニークな文字列のセットがあり、それらを色で表示したいと考えています。文字列はあちこちで繰り返されるため、ランダムではなく、一貫した色にする必要があります。
1つのアプローチは、色をランダム化して保存するDictionary
か、そのようなものに保存して、同じ色を再度使用できるようにすることです。
別のアプローチは、何らかの形で文字列を に変換する単純なアルゴリズム/ロジックを考え出すことSystem.Drawing.Color
です。
ただし、あまり良くない色になってしまわないように、定義済みの色のセットを維持したいと思います。これを と呼びましょうList<Color> allowedColors
。
Convert.ToByte()
の R、G、B コンポーネントにバイトを使用することを試みましColor
たが、変換がそのように機能しないため、うまくいきませんでした。
文字列は単純な文字列String foo = "bar";
です。色と文字列の関係は、一貫している限り重要ではありません。つまり、プログラムが実行されるたびに同じ色に等しくなる必要があり、文字列ごとに色が異なる必要があります (はい、重複があります)。色よりも多くの文字列があり、1 対 1 のマッピングではないためです)。
それらの文字列は、私が管理していないソースから来ています。それらはユニークですが、異なります。プログラムが開始されるたびに、同じ文字列が表示された場合、同じ色になるはずです。
したがって、文字列からバイトへの変換を探していると思います。これは、オーバーラップするとバイト範囲が最初からやり直し、最後にバイトが RGB にマップされてに送信されColor.FromArgb()
ます。