पर सेट किए गए झंडे की संख्या की गणना करना मुझे यकीन है कि ऐसा करने का एक बेहतर तरीका होना चाहिए। मैं झंडे enum पर एक गिनती ऑपरेशन करने की कोशिश कर रहा हूँ। इससे पहले कि मैं सभी संभावित मूल्यों पर जोर दे रहा था और सफल और संचालन की गिनती कर रहा था।एक गणना
उदा
[Flags]
public enum Skills
{
None = 0,
Skill1 = 1,
Skill2 = 2,
Skill3 = 4,
Skill4 = 8,
Skill5 = 16,
Skill6 = 32,
Skill7 = 64,
Skill8 = 128
}
public static int Count(Skills skillsToCount)
{
Skills skill;
for (int i = 0; i < SkillSet.AllSkills.Count; i++)
{
skill = SkillSet.AllSkills[i];
if ((skillsToCount & skill) == skill && skill != Skills.None)
count++;
}
return count;
}
मुझे यकीन है कि ऐसा करने का एक बेहतर तरीका होना चाहिए, लेकिन मानसिक ब्लॉक से पीड़ित होना चाहिए। क्या कोई एक अच्छा समाधान सलाह दे सकता है?
आप और अधिक स्पष्ट होगा कि क्या आप कौशल Enum अपने आप में झंडे की कुल संख्या पता लगाने की कोशिश कर रहे हैं? या कौशल "कौशल" पर लागू कौशल एनम मूल्य की संख्या? – Sung
मैं निश्चित रूप से इसे गलत तरीके से पढ़ता हूं। ऐसा लगता है कि वह उस बिट्स की संख्या को गिनने की कोशिश कर रहा है, न कि गणना में वस्तुओं की संख्या। मैंने अपनी पोस्ट हटा दी –
अस्पष्ट होने के लिए खेद है। दरअसल मैं गिनती विधि में पारित सक्रिय कौशल की संख्या को गिनने की कोशिश कर रहा हूं। यह स्पष्ट करने के लिए थोड़ा सा सवाल संपादित करेगा। – Ian