Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#:使用选择方法筛选数据表的数据_C#_Select_Datatable_Row - Fatal编程技术网

C#:使用选择方法筛选数据表的数据

C#:使用选择方法筛选数据表的数据,c#,select,datatable,row,C#,Select,Datatable,Row,我有一个数据表,其中包含一列作为文件路径。 文件路径D:\New folder\link.txtD:\New 文件夹\SharepointMigration(工作 计划).xlsD:\New 文件夹\my2\link.txtD:\New 文件夹\my2\SharepointMigration(工作 计划).xlsD:\New 文件夹\my2\my3\New Text Document.txt D:\New folder\Try.txt 我正在按筛选我的数据表 DataRow[] dtRow =

我有一个数据表,其中包含一列作为文件路径。

文件路径
D:\New folder\link.txt
D:\New 文件夹\SharepointMigration(工作 计划).xls
D:\New 文件夹\my2\link.txt
D:\New 文件夹\my2\SharepointMigration(工作 计划).xls
D:\New 文件夹\my2\my3\New Text Document.txt
D:\New folder\Try.txt

我正在按筛选我的数据表

DataRow[] dtRow = dataTable_FilesWithMetaData.Select("FilePath Like '" + sourcePath + "%'");
但它会给我所有的文件和子文件夹文件。但我只想要文件,不想要子文件夹。如何编写这种类型的筛选器表达式

编辑:我使用的是VS-20082.0框架。
文件以xml格式来自某个服务器,然后我将填充我的gridview。

如果文件位于运行应用程序的计算机上,为什么不执行

Directory.GetFiles(sourcePath)
对于所需路径?

如果LINQ可用:

DataTable dt = new DataTable();

dt.Columns.Add("FilePath", typeof(string));

dt.Rows.Add(@"D:\New folder\link.txt");
dt.Rows.Add(@"D:\New folder\my2\link.txt");

string target = Path.GetDirectoryName(@"D:\New folder\");

DataRow[] rows = dt.Rows.Cast<DataRow>().Where(dr =>
    Path.GetDirectoryName(((string)dr["FilePath"])).Equals(target))
    .ToArray();

这些文件以xml格式来自某个服务器,然后我正在填充gridview。感谢João Angelo,你的助手方法很有效。这是一个很好的方法。。再次感谢1s;)
public static DataRow[] GetRowsForDir(DataTable table, string targetDir)
{
    var result = new List<DataRow>();

    foreach (DataRow row in table.Rows)
    {
        if (Path.GetDirectoryName(((string)row["FilePath"])).Equals(targetDir))
        {
            result.Add(row);
        }
    }

    return result.ToArray();
}