⑴ ASP.NET或C#中如何获得枚举的所有项
public List<Status> StatusToList()
{
List<Status> list = new List<Status>();
foreach (string statusName in Enum.GetNames(typeof(Status)))
{
list.add((Status)statusName);
}
return list;
}
⑵ java中使用枚举器遍历的一个小问题。
第一个问题:
可以简单点理解为it.hasnext())是判断it迭代器是否还有下一个元素,只是一个判断,而没有将它指向it的下一个元素,当it.next()时才真正的指向下一个元素,也可以把it理解为一个数组让你更容易接受吧..
第二个问题:
//接口 对像变量 = new一个接口的实现类
List a=new LinkedList ();
java.util
接口 List<E>
所有超级接口:
Collection<E>, Iterable<E>
所有已知实现类:
AbstractList, AbstractSequentialList, ArrayList, AttributeList, CopyOnWriteArrayList, LinkedList, RoleList, RoleUnresolvedList, Stack, Vector 由JDK可看到:
接口inputStream有很多子接口和实现类
上面的代码体现了编程面向接口的思想,这种思想能降低代码的耦合性,
List a= null;
a = new LinkedList ();
a =new ArrayList;
上面代码可以看出,你定义一个List变量a,就可以用这个变量记录它产生的实现类
⑶ typedef enum{ATOM,LIST}ElemTag;
把 ElemTag这个自己的命名的类型,定义为只能取ATOM,LIST这两个内容的类型.
typedef用于把某个类型,定义为另一个类型.
⑷ java里枚举类型用于返回一个数组的方法values()在哪个里啊
用法一:常量
在JDK1.5 之前,我们定义常量都是: publicstaticfianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。
Java代码
public enum Color {
RED, GREEN, BLANK, YELLOW
}
用法二:switch
JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强。
Java代码
enum Signal {
GREEN, YELLOW, RED
}
public class TrafficLight {
Signal color = Signal.RED;
public void change() {
switch (color) {
case RED:
color = Signal.GREEN;
break;
case YELLOW:
color = Signal.RED;
break;
case GREEN:
color = Signal.YELLOW;
break;
}
}
}
用法三:向枚举中添加新方法
如果打算自定义自己的方法,那么必须在enum实例序列的最后添加一个分号。而且 Java 要求必须先定义 enum 实例。
Java代码
public enum Color {
RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);
// 成员变量
private String name;
private int index;
// 构造方法
private Color(String name, int index) {
this.name = name;
this.index = index;
}
// 普通方法
public static String getName(int index) {
for (Color c : Color.values()) {
if (c.getIndex() == index) {
return c.name;
}
}
return null;
}
// get set 方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getIndex() {
return index;
}
public void setIndex(int index) {
this.index = index;
}
}
用法四:覆盖枚举的方法
下面给出一个toString()方法覆盖的例子。
Java代码
public enum Color {
RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);
// 成员变量
private String name;
private int index;
// 构造方法
private Color(String name, int index) {
this.name = name;
this.index = index;
}
//覆盖方法
@Override
public String toString() {
return this.index+"_"+this.name;
}
}
用法五:实现接口
所有的枚举都继承自java.lang.Enum类。由于Java 不支持多继承,所以枚举对象不能再继承其他类。
Java代码
public interface Behaviour {
void print();
String getInfo();
}
public enum Color implements Behaviour{
RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);
// 成员变量
private String name;
private int index;
// 构造方法
private Color(String name, int index) {
this.name = name;
this.index = index;
}
//接口方法
@Override
public String getInfo() {
return this.name;
}
//接口方法
@Override
public void print() {
System.out.println(this.index+":"+this.name);
}
}
用法六:使用接口组织枚举
Java代码
public interface Food {
enum Coffee implements Food{
BLACK_COFFEE,DECAF_COFFEE,LATTE,CAPPUCCINO
}
enum Dessert implements Food{
FRUIT, CAKE, GELATO
}
}
用法七:关于枚举集合的使用
java.util.EnumSet和java.util.EnumMap是两个枚举集合。EnumSet保证集合中的元素不重复;EnumMap中的 key是enum类型,而value则可以是任意类型。关于这个两个集合的使用就不在这里赘述,可以参考JDK文档。
关于枚举的实现细节和原理请参考:
参考资料:《ThinkingInJava》第四版
http://softbeta.iteye.com/blog/1185573
⑸ mfc怎样在listbox中显示已经枚举过的文件并且把文件夹内的内容改成下面图这样
把条抄目取出来,然后修袭改,删掉该条目,最后把修改后的值插入回去。
例如:
CListBox *pList = (CListBox*)GetDlgItem(IDC_LISTBOX);
CString str;
int nIdex = pList->GetCurSel();
pList->GetText(nIdex,str);
str = "a";//把选中的条目改成a
pList->DeleteString(nIdex);
pList->InsertString(nIdex,str);
⑹ 如何按行枚举 python enumerate
enumerate()说明
enumerate()是python的内置函数
enumerate在字典上是枚举、列举的意思
对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值
enumerate多用于在for循环中得到计数
例如对于一个seq,得到:
(0, seq[0]), (1, seq[1]), (2, seq[2])
1
1
enumerate()返回的是一个enumerate对象,例如:
enumerate()使用
如果对一个列表,既要遍历索引又要遍历元素时,首先可以这样写:
list1 = ["这", "是", "一个", "测试"]
for i in range (len(list1)):
print i ,list1[i]123123
上述方法有些累赘,利用enumerate()会更加直接和优美:
list1 = ["这", "是", "一个", "测试"]
for index, item in enumerate(list1):
print index, item
>>>
0 这
1 是
2 一个
3 测试1234567812345678
enumerate还可以接收第二个参数,用于指定索引起始值,如:
list1 = ["这", "是", "一个", "测试"]
for index, item in enumerate(list1, 1):
print index, item
>>>
1 这
2 是
3 一个
4 测试1234567812345678
补充
如果要统计文件的行数,可以这样写:
count = len(open(filepath, 'r').readlines())11
这种方法简单,但是可能比较慢,当文件比较大时甚至不能工作。
可以利用enumerate():
count = -1
for index, line in enumerate(open(filepath,'r')):
count += 1
⑺ 若有枚举类型定义“enum list {x1,x2,x3,x4=6,x5,x6};"则枚举常量下x2和x6代表的是什么
x2 = 1
x6 = 8
枚举类型默认是从0开始,后面的数依次加1
但如果你自己赋值了,比如x4本来是3的,现在赋值为6了,则x4后面的数在x4的基础上依次加1
⑻ JAVA list 如何创建一个enum 类的list
import java.util.*;
public class EnumDemo {
public static void main(String[] args){
List<Enum<Grade>> list = new ArrayList<Enum<Grade>>();
}
}
enum Grade {
A, B, C, D, F, INCOMPLETE
};
⑼ 怎么将枚举值转换成集合
public enum enum1
{
name1,name2,name3
}
private string[] GetEnumList()
{
return System.Enum.GetNames(typeof(enum1));
}
⑽ 如何将enum的成员存放到一个QStringList中
c++中的枚举本质上是整型,不能直接放到QStringList中,得转换成QString
QStringList sl;
for( int i = A; i <= C; ++i ) {
sl << QString::number(i);
}