C# 如何从datatables方法返回假条件?
我想问,有没有办法从返回的数据中得到错误的条件?如果大小>4000,我想从readFolder函数中获取假条件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
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完成回调,并且将同样绑定一个线程。