草庐IT

while语句

全部标签

c# - LINQ 如何在 using 语句中延迟执行

假设我有以下内容:privateIEnumerableMyFunc(parametera){using(MyDataContextdc=newMyDataContext){returndc.tablename.Select(row=>row.parameter==a);}}privatevoidUsingFunc(){varresult=MyFunc(newa());foreach(varrowinresult){//Dosomething}}根据文档,linq执行将推迟到我实际枚举结果时,该结果出现在foreach的行中。但是,using语句应强制在调用MyFunct()结束时可靠地

c# - Automapper:ForMember 中的复杂 if else 语句

假设Date是一个可为null的DateTime:Mapper.CreateMap().ForMember(dest=>dest.Date,opt=>opt.MapFrom(src=>{DateTime?finalDate=null;if(src.HasDate=="N"){//soitshouldbenull}else{endResult=DateTime.Parse(src.Date.ToString());}returnfinalDate;}));我得到的错误是:Error30Alambdaexpressionwithastatementbodycannotbeconverted

c# - 混淆使用 "using"语句 C#

根据MSDNLibraryusingStatement(C#Reference)Definesascope,outsideofwhichanobjectorobjectswillbedisposed.但是我得到了一些用户在这里发布的这段代码,我对此感到困惑:(请参阅我对代码的评论)using(OleDBConnectionconnection=newOleDBConnection(connectiongString)){if(connection.State!=ConnectionState.Open)connection.Open();stringsql="INSERTINTOStu

c# - 检查对象是否为 null 并在同一个 if 语句中比较对象的属性值是否安全?

请参阅线程标题。我是否可以安全地执行类似的操作而不用担心NullReferenceException,或者不能保证这些bool表达式将从左到右求值?//canthisthrowanNRE?if(obj==null||obj.property==value){//dosomething} 最佳答案 他们将从左到右进行评估,保证。所以是的,它是安全的。Theconditional-ORoperator(||)performsalogical-ORofitsbooloperands,butonlyevaluatesitssecondope

c# - 数据表Select语句问题

下面的VB行,其中_DSversionInfo是一个数据集,不返回任何行:_DSversionInfo.Tables("VersionInfo").Select("FileID=88")但检查显示该表包含FileID为92、93、94、90、88、89、215、216的行。表列均为字符串类型。进一步调查表明,使用88、215和216的ID只会返回引用数字的行。即_DSversionInfo.Tables("VersionInfo").Select("FileID='88'")无论数字是否被引用,所有其他行都有效。有人能解释为什么某些数字会发生这种情况而其他数字不会发生这种情况吗?我明白

c# - C#中使用反射制作动态LINQ语句

如果我有一个像这样的LINQ语句x=Table.SingleOrDefault(o=>o.id==1).o.name;如何使用反射将传入的变量替换为“id”和“name”?当我尝试时,我不断收到对象引用未设置为对象错误的实例。我的尝试是这样的x=(string)Table.SingleOrDefault(o=>(int?)o.GetType().GetProperty(idString).GetValue(o,null)==1).GetType().GetField(nameString).GetValue(x);任何帮助都会很棒。谢谢。 最佳答案

c# - 是否可以在 C# 的 if-else 语句中定义类似 'between' 的内容?

想请教比我C#能力强的人。是否可以减少下面的代码if(val>20&&val40&&val72&&val假设我有超过10-11个if-else语句。缩短上述代码的最佳方法是什么?我想在sql中使用类似between的东西。 最佳答案 定义一个extensionmethod:publicstaticboolBetween(thisintsource,inta,intb){returnsource>a&&source然后,使用它:if(val.Between(20,40))//...正如oɔɯǝɹ在他的评论中正确指出的那样,您可以更进一

c# - Razor View 上的 If 语句(对于 CSS 类)

我需要根据是否阅读消息在CSS类之间切换。简单来说应该是这样的:if(item.status=="Unread"){...}else{...}虽然我很难实现这一目标。有什么可以告诉我完成这项工作的好处吗?我应该使用HTML帮助器还是什么?这是到目前为止的完整代码:@foreach(variteminModel){if(item.status=="Unread"){@Html.DisplayFor(modelItem=>item.timestamp)@Html.DisplayFor(modelItem=>item.subject)@Html.DisplayFor(modelItem=>i

c# - 你能设置 VS2008 中断 try-catch 语句中的错误吗

我喜欢VB6的一个原因是,无论您设置了何种错误处理,您都能够告诉开发环境在所有错误上中断。是否可以在VS2008中做同样的事情,以便调试器在出现任何错误时停止,即使它发生在try-catch语句中?当您处理一个包含500条记录的文件并且其中一条记录失败时,问题尤其严重-谁知道是哪条记录-您不想修改代码以便您的for计数器在该记录之外初始化for循环-这是草率的长期。您只希望调试器知道由于您在某处放置的某些设置而停止。 最佳答案 是的,转到“调试”菜单,选择“异常...”,为“公共(public)语言运行时异常”勾选“抛出”

c# - 语句 block 中的变量范围

for(inti=0;i根据我对范围的理解,第一个例子应该没​​问题。他们都不被允许的事实似乎更奇怪。当然'i'要么在范围内,要么不在范围内。是否有一些我不明白的关于范围的不明显的东西,这意味着编译器真的无法解决这个问题?或者只是保姆状态编译主义的一个例子? 最佳答案 Bymyunderstandingofscope,thefirstexampleshouldbefine.您对作用域的理解很好。这不是范围界定错误。这是简单名称错误的不一致使用。inti=10;//error,'i'alreadyexists这不是报告的错误。报告的错