IEnumerable<Attribute> keys = p.GetCustomAttributes().ToList();
var data1 = data.Where(n => n.Name.Contains(search)).ToList();
if (data1.Count == 0)
//MSDN例子
using System; using System.Windows.Forms; using System.Collections; namespace Exceltest { public partial class Form3 : Form { public Form3() { InitializeComponent(); } private void Form3_Load(object sender, EventArgs e) { MessageBox.Show("000"); Person[] peopleArray = new Person[3] { new Person("John", "Smith"), new Person("Jim", "Johnson"), new Person("Sue", "Rabon"), }; var ss = new People(peopleArray); //创建一个对象,这个对象_people属性是一个数组 People peopleList = new People(peopleArray); foreach (Person p in peopleList) //如果不集成IEnumerable,对象将无法使用foreach Console.WriteLine(p.firstName + " " + p.lastName); } } public class Person //人,个人 { public Person(string fName, string lName) { this.firstName = fName; this.lastName = lName; } //构造方法 public string firstName; public string lastName; } public class People : IEnumerable //人,大家 { private Person[] _people; //定义一个个人数组 public People(Person[] pArray) //构造函数需要传递过来一个数组 /////数组传递到people中 { _people = new Person[pArray.Length]; //初始化数组的范围, for (int i = 0; i < pArray.Length; i++) { _people[i] = pArray[i]; } } IEnumerator IEnumerable.GetEnumerator() // 集成必须要实现该接口 { PeopleEnum ss = new PeopleEnum(_people); return new PeopleEnum(_people); //返回 } } public class PeopleEnum : IEnumerator { public Person[] _people; // Enumerators are positioned before the first element // until the first MoveNext() call. int position = -1; public PeopleEnum(Person[] list) { _people = list; } public bool MoveNext() { position++; return (position < _people.Length); } public void Reset() { position = -1; } public object Current { get { try { return _people[position]; } catch (IndexOutOfRangeException) { throw new InvalidOperationException(); } } } } }