返回信息流是这样的,我建立了一张DataTable,用Select方法搜索出想要的Rows,进而再用Indexof方法求这些Row在DataTble中的索引。可是Indexof总是返回-1。我百思不得其解,求大牛指点。
PS:我用的版本为VS2010 SP1。.
这是一条镜像帖。来源:北邮人论坛 / dot-net / #2632同步于 2011/2/18
该镜像源已超过 30 天没有更新,可能在源站已被删除。
dotNET机器人发帖
DataRowCollection.Indexof方法怎么不起作用?
byebyebye
2011/2/18镜像同步1 回复
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
DataTable dt = new DataTable();
dt.Columns.Add("key");
dt.Columns.Add("value1");
dt.Columns.Add("value2");
DataRow dr1 = dt.NewRow();
dr1["key"] = "a";
dr1["value1"] = "a";
dr1["value2"] = "a";
dt.Rows.Add(dr1);
DataRow dr2 = dt.NewRow();
dr2["key"] = "b";
dr2["value1"] = "b";
dr2["value2"] = "b";
dt.Rows.Add(dr2);
DataRow dr3 = dt.NewRow();
dr3["key"] = "a";
dr3["value1"] = "b";
dr3["value2"] = "b";
dt.Rows.Add(dr3);
dt.AcceptChanges();
DataRow[] drs = dt.Select("key='a'");
foreach (DataRow item in drs)
{
Console.WriteLine("Index:" + dt.Rows.IndexOf(item));
}
Console.Read();
}
}
}
运行结果:
Index:0
Index:2
符合预期。
lz写的select 对吗? 获取的 DataRow[] drs 为空吗?