2010-03-05 42 views
5

我們正在動態構建一些SQL語句,並且正在使用IN運算符。如果我們的價值是值的集合使得:檢查對象是否爲通用集合

List<Guid> guids = new List<Guid>() 

我希望能夠提供者的GUID「我的第建設者,有它驗證類型,如果是枚舉創建這樣一個條款:

IN ({Guid1}, {Guid2}, {Guid3}) 

檢查該值的IEnumerable這樣的:

if (value is IEnumerable) 

落下時,字符串中傳遞(這很經常發生:))。驗證這種情況的最好方法是什麼?

+1

請不要建立你自己的SQL。要麼去LINQ(我不喜歡)或使用其他機制。不僅調試困難,難以維護,而且重新部署應用程序進行小的查詢更改,但總是存在需要處理的sql注入問題。 – NotMe 2010-03-05 16:09:41

+0

沒有選項。 :|相信我,我會在心跳中使用Linq。 – 2010-03-05 16:10:26

回答

7

如何:

if(value .GetType().IsGenericType && value is IEnumerable) 
5

你可以嘗試value.GetType().IsGenericType結合你的支票的IEnumerable。

+0

他擊敗你一分鐘:) – 2010-03-05 16:13:13

2

什麼:

value is IEnumerable<Guid> 

如果你期望的Guid情況下,它的更好,不是嗎?