2014-01-30 140 views
0

如果我聲明消息數組並且我也有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();  
    } 

在所有任何提示讚賞

感謝

回答

2

將消息到一個列表,然後將它轉換爲數組:

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(); 
+0

感謝,這應該排序。我已經這樣做了,因爲我只想添加10條消息 – DarkW1nter

+0

不客氣:) – pid