Tôi chắc chắn phải có cách tốt hơn để thực hiện việc này. Tôi đang cố gắng làm một hoạt động đếm trên một lá cờ enum. Trước khi tôi đã được itterating trên tất cả các giá trị có thể và đếm các thành công và hoạt động.Đếm số cờ được đặt trên một điều tra
ví dụ:
[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;
}
Tôi chắc chắn phải có cách tốt hơn để làm điều này, nhưng phải chịu đựng một khối tâm thần. Bất cứ ai có thể tư vấn cho một giải pháp đẹp hơn?
bạn sẽ được rõ ràng hơn cho dù bạn đang cố gắng tìm ra tổng số cờ trong Kỹ năng Enum bản thân? hoặc số lượng kỹ năng enum giá trị áp dụng trên "kỹ năng"? – Sung
Tôi chắc chắn đã hiểu sai điều này. Có vẻ như anh ấy đang cố gắng đếm số lượng bit được bật, không phải số lượng mục trong liệt kê. Tôi đã xóa bài đăng của mình. –
Xin lỗi vì không rõ ràng. Thật vậy, tôi đang cố gắng đếm số lượng các kỹ năng hoạt động được chuyển vào phương thức Count. Sẽ chỉnh sửa câu hỏi một chút để làm cho nó rõ ràng hơn. – Ian