Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.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# 如何从datatables方法返回假条件?_C#_Datatable_Boolean - Fatal编程技术网

C# 如何从datatables方法返回假条件?

C# 如何从datatables方法返回假条件?,c#,datatable,boolean,C#,Datatable,Boolean,我想问,有没有办法从返回的数据中得到错误的条件?如果大小>4000,我想从readFolder函数中获取假条件 public DataTable readFolder(string path, string ext){ MBer = new Models.MBerkas(); DataTable dt = new DataTable(); DataRow dr; //Initialize Directory path

我想问,有没有办法从返回的数据中得到错误的条件?如果大小>4000,我想从readFolder函数中获取假条件

public DataTable readFolder(string path, string ext){
        MBer = new Models.MBerkas();

        DataTable dt = new DataTable();
        DataRow dr;

        //Initialize Directory path
        string ax = path;

        string[] s1 = Directory.GetFiles(ax, "*."+ext+"*", SearchOption.AllDirectories);
       
        //File Name, File Type, File size, create date
        for (int i = 0; i <= s1.Length - 1; i++)
        {
           
                dt = MBer.setHeader;
            

            FileInfo f = new FileInfo(s1[i]);
            FileSystemInfo f1 = new FileInfo(s1[i]);

            double size = Math.Round(Convert.ToDouble(f.Length / 1024), 0);

            if (size <= 4000)
            {
                int lineCount = MBer.getLineCount(s1[i]);

                dr = dt.NewRow();
                dr = MBer.getRowTable(dr, f1, f, lineCount);

                dt.Rows.Add(dr);
            }
            else {
                MessageBox.Show("" + f1.Name + " size too large.");
                return false;
            }
        }            
        return dt;
    }
public DataTable readFolder(字符串路径,字符串扩展){
MBer=新模型。MBerkas();
DataTable dt=新的DataTable();
数据行dr;
//初始化目录路径
字符串ax=路径;
字符串[]s1=Directory.GetFiles(ax,“*.”+ext+“*”,SearchOption.AllDirectories);
//文件名、文件类型、文件大小、创建日期

对于(int i=0;i您可以从函数中抛出一个异常,或者有一个
out
参数,您将检查该参数:

public DataTable readFolder(string path, string ext, out bool valid){

您可以从函数中抛出异常,或者有一个
out
参数,您将检查该参数:

public DataTable readFolder(string path, string ext, out bool valid){

我将从另一个方向提出类似的建议:

public异步IAsyncEnumerable可读文件夹(字符串路径,字符串ext)
{
var d=新目录信息(路径);
var s1=d.EnumerateFiles(“*。”+ext+“*”,SearchOption.AllDirectories);
foreach(s1中的FileInfo-fi)//FileInfo继承自FileSystemInfo!您不需要两者。
{   
如果(fi.Length<4097024)//4097024是第一个值n,其中舍入(n/1024)>4000
{
产量指数;
}
其他的
{
//**记录**结果,或将其添加到作为参数传递的集合中,您可以随后检查该集合。
//你也可以在这里“断开”,离开循环,停下来。
}
}
}
这里的代码要少得多,但运行速度要快得多(我为每个文件至少节省了三次磁盘搜索!)此外,
模型
名称空间的存在表明了MVC,在MVC中,
异步
功能可以创造另一个巨大的性能胜利

为了解释取代
大小
标准的幻数,这很容易通过编写找到,并将进一步节省您在每个文件上的一些计算时间


即使你真的想要datatable,我还是会写下这段代码,然后用另一种方法将它包装起来,使用这个结果来创建你的表。

我会走另一条路,并提出类似的建议:

public异步IAsyncEnumerable可读文件夹(字符串路径,字符串ext)
{
var d=新目录信息(路径);
var s1=d.EnumerateFiles(“*。”+ext+“*”,SearchOption.AllDirectories);
foreach(s1中的FileInfo-fi)//FileInfo继承自FileSystemInfo!您不需要两者。
{   
如果(fi.Length<4097024)//4097024是第一个值n,其中舍入(n/1024)>4000
{
产量指数;
}
其他的
{
//**记录**结果,或将其添加到作为参数传递的集合中,您可以随后检查该集合。
//你也可以在这里“断开”,离开循环,停下来。
}
}
}
这里的代码要少得多,但运行速度要快得多(我为每个文件至少节省了三次磁盘搜索!)此外,
模型
名称空间的存在表明了MVC,在MVC中,
异步
功能可以创造另一个巨大的性能胜利

为了解释取代
大小
标准的幻数,这很容易通过编写找到,并将进一步节省您在每个文件上的一些计算时间


即使您真的需要datatable,我仍然会编写此代码,然后用另一种方法将其包装起来,使用此结果创建表。

您可以返回
bool
或为给定条件引发异常。

您可以返回
bool
或为给定条件引发异常。

public bool TryReadFolder(string path,string ext,out DataTable DataTable)
我会让你研究rest如果你不需要任何具体信息,最简单的答案就是返回
null
public bool TryReadFolder(string path,string ext,out DataTable DataTable)
我会让你研究REST如果你不需要任何特定的信息,最简单的答案就是返回
null
IAsyncEnumerable
通过标准迭代器是一个奇怪的选择。这里不会有IO完成回调,也会在标准It上绑定一个线程。
IAsyncEnumerable
erator是一个奇怪的选择。这里将不会有IO完成回调,并且将同样绑定一个线程。