我想在实现IEnumerable的对象上使用Linq的contains方法,但是无法弄清楚
//
// Summary:
// Represents a collection of form fields.
[DefaultMember("Item")]
public class FormFieldList : IEnumerable
{
public FormField this[string name] { get; }
public FormField this[int index] { get; }
public int Count { get; }
public FormField Owner { get; }
public int Add(FormField formField);
public void DrawKidReferences(DocumentWriter writer);
public IEnumerator GetEnumerator();
public TextFieldList GetTextFields();
public void Remove(FormField field);
}
答案 0 :(得分:1)
以下是Contains<TSource>
方法的定义:
public static bool Contains<TSource>(
this IEnumerable<TSource> source,
TSource value
)
正如您所看到的那样,为了使用此方法(与Cast
和OfType
除外的其他LINQ扩展方法一样),您的类应该实现通用接口IEnumerable<T>
。
如果您知道枚举器返回的项目类型(假设它是FormField
),那么您可以将源序列项目转换为该类型并获得IEnumerable<FormField>
:
formFieldList.Cast<FormField>().Contains(someFormField)