1

任意の文字列のリストがあります。これらを16進数のカラーコードに変換したいと思います。

同じ文字列を変換するたびにメソッドが同じカラー コードを返す必要があるため、コードはランダムであってはなりません。

解決:

public string GetColorCode(string value)
{
    var i = value.GetHashCode() & 0x00FFFFFF;
    return i.ToString("X6");
}
4

1 に答える 1

3

GetHashCode()出発点として使用できます。GetHasCode()は完全な整数を返し、 で色を定義するのに通常 3 バイトしか必要ないため、RGB次のいずれかを実行して noin の重要な部分をスキップする必要があります。

var color = str.GetHashCode() & 0x00FFFFFF;

また

 var color = str.GetHashCode()>>8;

これは、同じ文字列、同じ色であることを保証します。

于 2012-11-13T11:58:36.510 に答える