本质上,我有带参数的函数: ContainsValue(IEnumerable collection, object obj)我需要使用 Equals()Contains检查集合obj 。具体来说,collection 是一个字符串数组,而 obj 是一个自定义类型/类(它称为 FString,我不完全理解它是什么,但它至少在某种程度上是从字符串派生的)。不幸的是,解决方案需要是通用的,所以我不能明确引用自定义类型。所以我需要一种方法将 obj 转换为集合的任何类型。这可能吗?编辑:static bool ContainsValue(IEnumerable collection, object obj){ // cast obj into same type as collection elements foreach(var element in collection) { if() // element equals obj { return true; } } return false;}
3 回答
守着一只汪
TA贡献1872条经验 获得超3个赞
您可以像这样使用它(如果您可以访问集合的字段):
string objAsString = obj?.ToString() ?? "";
if(collection.Any(x => x.field == objAsString))
{
//Do something...
}
- 3 回答
- 0 关注
- 195 浏览
添加回答
举报
0/150
提交
取消