我的代碼中有一個類已經從IEnumerable派生。 我想知道是否有一種方法可以在其工作站上使用「Contains」方法在該列表中查找某個內容?我們有IEnumerable中的「Contains」方法
7
A
回答
15
你真的實施非通用IEnumerable
,或通用IEnumerable<T>
?如果您可以實施通用方法,那麼您的生活將變得更加簡單 - 因爲您可以使用LINQ to Objects,它確實具有Contains
擴展方法。否則,您可能會使用Cast
或OfType
(例如,)從非泛型轉換爲泛型。
bool found = nonGeneric.Cast<TargetType>().Contains(targetItem);
這將是更好,如果你只是實現通用接口下手雖然:)
14
不,IEnumerable<T>
接口沒有這種方法。有一個extension method
,雖然你可以使用。
using System.Linq;
然後:
IEnumerable<string> foos = new[] { "foo", "bar", "baz" };
bool IsThereABar = foos.Contains("bar");
0
public static bool Contains<T>(this IEnumerable source, T value)
{
foreach (var i in source)
{
if (Equals(i, value))
return true;
}
return false;
}
如果你願意,你可以添加自定義比較的參數TI擴展方法包含
相關問題
- 1. IQueryable的Contains()和IEnumerable的Contains()之間有什麼區別?
- 2. IEnumerable - 我的擴展方法
- 3. Lambda Expression + IEnumerable + C#+ Where + Contains
- 4. TreeSet/Contains方法
- 5. contains方法
- 6. 使用contains()方法
- 7. 無法使用TreeSet中的contains()方法
- 8. CONTAINS方法的替代方法?
- 9. IEnumerable方法
- 10. Java。 ArrayList中的contains方法不工作
- 11. 有趣的IEnumerable(或IQueryable)擴展方法
- 12. 重寫contains()方法C#
- 13. !contains()方法?那可能嗎?
- 14. 調試IEnumerable方法
- 15. 執行IEnumerable的方法
- 16. 讓IEnumerable的方法異步
- 17. 擴展方法上的IEnumerable
- 18. 寫作的方法中的IEnumerable
- 19. LINQ語法contains方法具有包容性的「過濾器」
- 20. NSubstitue模擬的IEnumerable其中()方法
- 21. 重寫Set的contains()方法可以嗎?
- 22. C#中不可變的集合,支持像「Contains(IEnumerable <T>)」這樣的(String-like)方法?
- 23. 'contains()'不可用:在序列上調用'contains()'方法
- 24. 具有HashMap支持的contains()方法的集合的精度?
- 25. 爲什麼我不能從我的數組中調用Contains方法?
- 26. IEnumerable C#類操作方法
- 27. IQueryable與IEnumerable ...擴展方法
- 28. Queryable.Contains方法和List中的區別<T>。C#中的Contains方法?
- 29. DocumentDB的語法CONTAINS
- 30. 我們可以在後端的Api類中有Api方法嗎