Bạn có thể sử dụng LINQ to DataSets để làm điều này:
Assert.IsTrue(dataSet.Tables[0].AsEnumerable().Where(
r => ((string) r["Col1"]) == "MyValue").Count() == 1);
Lưu ý, bạn cũng có thể làm điều này mà không có sự kêu gọi Khẳng định:
dataSet.Tables[0].AsEnumerable().Where(
r => ((string) r["Col1"]) == "MyValue").Single();
Nếu số lượng hàng không bằng một (do đó, các cuộc gọi đến "Single"), sau đó một ngoại lệ sẽ được ném, và rằng ngoại lệ unhandled nên không trường hợp thử nghiệm của bạn. Cá nhân, tôi thích cái sau, vì nó có ý nghĩa ngữ nghĩa rõ ràng hơn.
Trên đây có thể được tiếp tục đẽo xuống:
dataSet.Tables[0].AsEnumerable().Single(
r => ((string) r["Col1"]) == "MyValue");
Ngoài ra, bạn có thể tận dụng lợi thế của Field
method trên DataRowExtensions
class để đơn giản hóa kiểu an tiếp cận với lĩnh vực này (cũng như cung cấp các lợi ích thêm chuyển đổi DBNull
null đối tác trong NET):
dataSet.Tables[0].AsEnumerable().Single(
r => r.Field<string>("Col1") == "MyValue");
Bạn có muốn trả lại hàng phù hợp, hoặc chỉ đếm số lượng có bao nhiêu? –