如果我声明了一个消息数组,并且我也有一个MessageEnumerator,那么如何将枚举数的当前消息添加到数组中呢?
Message[] m = null;
MessageEnumerator me = q.GetMessageEnumerator2();
for (int i = 0; i < 10; i++)
{
me.MoveNext();
Array.Resize(ref m, m.Length + 1);
m[m.Length - 1] = // the current message?
me.RemoveCurrent();
}任何建议都很感激
谢谢
发布于 2014-01-30 15:35:30
将消息放入列表,然后将其转换为数组:
List<Message> ml = new List<Message>();
MessageEnumerator me = q.GetMessageEnumerator2();
for (int i = 0; i < 10; i++)
{
me.MoveNext();
ml.Add(me.Current);
}
Message[] m = ml.ToArray();在另一个注意事项上,您不应该在IEnumerable上迭代(使用索引),而应该这样枚举:
List<Message> ml = new List<Message>();
foreach (Message mx in q.GetMessageEnumerator2())
{
ml.Add(mx);
}
Message[] m = ml.ToArray();您甚至可以将IEnumerator直接放入一个新的列表中,但是这个列表太紧了,甚至没有意义了:
List<Message> ml = new List<Message>(q.GetMessageEnumerator2());
Message[] m = ml.ToArray();https://stackoverflow.com/questions/21460641
复制相似问题