2012-07-07 49 views
0

我怎樣才能找到列表項目的列表項目的給定參數?我怎樣才能找到列表項目的列表項目的給定參數?

我的列表被定義爲;

public List<Column0A> list0A = new List<Column0A>(); 

and have items as;

list0A.Add(new Column0A(header.type, message.receieveTime, message.importance, message.data)); 

我列出了所有message.receiveTime在我的GUI上,這取決於我的列表。我真正想要的是; 當receiveTime標籤上的用戶點擊,我想顯示工具提示,顯示列表項的(相同的接收時間),所有的數據是這樣的:

頁眉:header.type

接收時間:receiveTime

重要性:message.Importance

數據:message.data

我怎麼能科幻nd相同的receieveTime列表實例?我應該使用LINQ嗎? 你能給我一個代碼示例嗎?

謝謝。

+2

'list0A'是一個非常糟糕的變量名 - 你應該給你變量(和方法,類和....)有意義的名字。 – Oded 2012-07-07 11:50:11

+0

你也不應該有公共領域。這應該是一個財產。爲了更好的形式,它不應該返回'List ',而是返回一個接口,比如'IList ',這樣實現可以在沒有大的重構的情況下被切換出來。 – 2012-07-07 12:02:23

+0

Oded,這對我很有意義;它是一個包含0A消息的列表。但是,謝謝。 – Cnqt 2012-07-09 07:15:16

回答

1

我建議您使用ID作爲查找,而不是時間戳。如果這個信息來自數據庫,這可能是主鍵字段。它使你的意圖更清晰,並且允許你選擇正確的信息,如果兩個碰巧有相同的時間。然後選擇你的項目:

int theIdImLookingFor = //the one they just clicked on 
Column0A myItem = list0A.Single(x => x.ID == theIdImLookingFor); 
//display myItem's info in a tooltip 

Single是LINQ擴展名)如果你不就行了已經很清楚,你應該學習之間SingleFirstSingleOrDefault的差異,FirstOrDefault,並選擇合適的一個爲你的情況。

+0

如果沒有帶主鍵的數據庫,那麼在填充它時,OP也可以在他的內存中的'Column0A'類中生成一個'Guid'。唯一的ID可以分配給標籤的「標籤」字段。當點擊標籤時,使用'Tag'字段中的值作爲Tim S.代碼'theIdImLookingFor'以及他的其他代碼。 – 2012-07-08 18:39:34

+0

謝謝蒂姆S.,它真的幫助我,我appartiated。 也感謝Brad Rem提供更多信息。 – Cnqt 2012-07-09 07:12:49

相關問題