日期:2014-05-17  浏览次数:20876 次

位域获取数字值的列表

[Flags]
    public enum XX : int
    {
        a = 1,
        b = 2,
        c = 4
    }

XX t = XX.a | XX.b;
int intValue = (int)t; //3
string strValue = t.ToString(); //a, b
string intArray = Func(?); //这里希望的返回值是 1, 2


跪求Func函数的实现
------最佳解决方案--------------------
问题莫挑战还是板块人气不足呢,打酱油的都没有吗
------其他解决方案--------------------
你不遍历枚举,你怎么得到啊,你这个3可以有多种组合,谁知到你是枚举元素运算的结果啊
------其他解决方案--------------------
修正下

string intArray = string.Join(",", Enumerable.Range(0, 32).Select(x => (intValue 
------其他解决方案--------------------
最好不用遍历成员的方式实现,座等牛人指教
------其他解决方案--------------------
string intArray = string.Join(",", Enumerable.Range(0, 30).Select(x => (intValue 
------其他解决方案--------------------
 (1 << x)) != intValue ? 0 : 1 << x).Where(x => x != 0).Select(x => x.ToString()).ToArray());
------其他解决方案--------------------
 (1 << x)) != intValue ? 0 : 1 << x).Where(x => x != 0).Select(x => x.ToString()).ToArray());