如何使下面的行不区分大小写?
drUser["Enrolled"] =
(enrolledUsers.FindIndex(x => x.Username == (string)drUser["Username"]) != -1);
Run Code Online (Sandbox Code Playgroud)
我今天早些时候给了我一些建议,建议我使用:
x.Username.Equals((string)drUser["Username"], StringComparison.OrdinalIgnoreCase)));
Run Code Online (Sandbox Code Playgroud)
麻烦的是我不能让这个工作,我已经尝试了下面的行,这个编译但返回错误的结果,它返回注册用户作为注册的未注册和未注册的用户.
drUser["Enrolled"] =
(enrolledUsers.FindIndex(x => x.Username.Equals((string)drUser["Username"],
StringComparison.OrdinalIgnoreCase)));
Run Code Online (Sandbox Code Playgroud)
任何人都可以指出这个问题吗?
我能够使用log4net和Cassini/IIS开发服务器写入日志文件,但是当我使用IIS7.5时,我无法写出文件.
最初,我得到了一个安全异常,所以我添加requirePermission="false"了异常消失但没有创建文件.
根据IISM,信任级别已满.
我不能在我自己的机器上工作,我想知道当我转移到ISP(discountASP)时会发生什么.
这是log4net设置:
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" requirePermission="false" />
</configSections>
<log4net>
<appender name="FileAppender" type="log4net.Appender.FileAppender">
<file value="log-file.txt" />
<appendToFile value="true" />
<encoding value="utf-8" />
<layout type="log4net.Layout.SimpleLayout" />
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="FileAppender" />
</root>
</log4net>
Run Code Online (Sandbox Code Playgroud)
C#
log4net.Config.XmlConfigurator.Configure();
ILog Log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
Log.Info("This is a test");
Run Code Online (Sandbox Code Playgroud)
有线索吗?
ASP.NET 3.5,VS2008,Windows 7,IIS7.5,log4net 1.2.10
编辑:
我使用在Cassini中运行的测试Web应用程序并在IIS7.5中运行它,因此我的Web应用程序特有的东西阻止了log4net的运行.其中有很多内容,ELMAH,输出缓存,AJAX控件工具包,表单身份验证,ssl,url重写等...除了将每个都添加到测试应用程序之外,有没有更好的方法来找出导致的原因log4net工作?
更新:
我使用AdoNetAppender远离文件权限问题,但仍然得到相同的结果.AdoNetAppender适用于在Cassini和IIS上运行的测试应用程序,但它不适用于我的Web应用程序.获得以下异常:
System.Security.SecurityException:对"System.Configuration.ConfigurationPermission,System.Configuration ..."类型的权限的请求失败.
更新2: 我错误地认为测试webapp fileAppender在IIS7.5中工作.这就是:测试webapp fileAppender和AdoDotNetAppender都在Cassini/IIS开发中工作,但在IIS7.5中不工作.所以我认为这是IIS的问题,而不是我的webapp.
注意.我作为管理员运行VS2008,但我作为nonAdmin登录到Windows 7.此外,我正在运行Windows 7 Home Premium,而非Professional.
我向网络根目录授予了NETWORK SERVICE完全权限,但仍然没有创建文件.还给了每个人完全许可,没有文件.
由于adoDotNetAppender不起作用(但在开发IIS中也没有),我认为除了文件权限之外可能还有另外一个问题.
更新3:
我让它为IIS7上的FileAppender工作.如果我添加这个:
<identity impersonate="true"
userName="zzz"
password="yyy" …Run Code Online (Sandbox Code Playgroud) 我在列表列表或元组列表中有一些数据,如下所示:
data = [[1,2,3], [4,5,6], [7,8,9]]
data = [(1,2,3), (4,5,6), (7,8,9)]
Run Code Online (Sandbox Code Playgroud)
我想按子集中的第二个元素排序.意思是,按2,5,8排序,其中2来自(1,2,3),5来自(4,5,6).这样做的常用方法是什么?我应该在列表中存储元组或列表吗?
我想优化这个Perl子:
push_csv($string,$addthis,$position);
用于将字符串放在CSV字符串中.
例如,如果$string="one,two,,four"; $addthis="three"; $position=2;
那时push_csv($string,$addthis,$position)将改变的价值$string = "one,two,three,four";
sub push_csv {
my @fields = split /,/, $_[0]; # split original string by commas;
$_[1] =~ s/,//g; # remove commas in $addthis
$fields[$_[2]] = $_[1]; # put the $addthis string into
# the array position $position.
$_[0] = join ",", @fields; # join the array with commas back
# into the string.
}
Run Code Online (Sandbox Code Playgroud)
这是我的代码中的瓶颈,因为它需要被称为几百万次.
如果你精通Perl,你能看看它,并提出优化/替代方案吗?提前致谢!:)
编辑:转换为@fields并返回字符串需要时间,我只想到一种方法来加快它我连续多个子调用.拆分一次,然后将多个东西推入阵列,然后在最后加入一次.
我正在使用一个旧的mysql数据库,其中存储日期(没有时间)作为日期时间,时间存储为字符串(没有日期).
在C#I中,我有一个类似值的DateTime和一个类似值2010-06-25 12:00:00 AM的String 15:02.
在没有大量开销的情况下结合这些内容的最简洁方法是什么?
我尝试过几种方法,包括:
DateTime NewDateTime = DateTime.Parse(OldDateTime.ToString("yyyy-MM-dd ") + TimeString);
Run Code Online (Sandbox Code Playgroud)
我不喜欢将现有的DateTime转换为字符串并追加时间.
我可以将时间字符串转换为日期,但之后我得到今天的日期并将其添加为旧日期时间的多个刻度是不正确的.
注意:不要担心验证,它在其他地方完成.时间以24小时格式表示,没有秒数.
好的,所以我对这个问题很难过.我已经看到很多应该解决这个问题的事情,但是我没有得到满足我要求的解决方案.
我正在使用ELMAH来记录异常,并且当具有无效控制器的URL或适当的控制器和无效操作时,我会收到此异常.
System.Web.HttpException: The controller for path '/BadController' was not found or does not implement IController.
at System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(RequestContext requestContext, Type controllerType)
at System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext requestContext, String controllerName)
at System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase httpContext, IController& controller, IControllerFactory& factory)
at System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext, AsyncCallback callback, Object state)
at System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContext httpContext, AsyncCallback callback, Object state)
at System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData)
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
Run Code Online (Sandbox Code Playgroud)
我想阻止这个异常被抛出.我正在使用自定义错误,它们工作正常,因为应用程序将发送到我的自定义404错误页面.但是,异常仍会被记录.
我有[HandleError]属性装饰所有控制器.这可能吗?如果是这样,我将不胜感激任何帮助.
我已经尝试过,设置一个重定向的最终路由,但无论出于何种原因,它都匹配之前的路由.我试图使用httpModule,并在文件的情况Application_Error下清除Global.asax.没有什么能阻止这种例外.
再次感谢任何帮助!
C#WinForms:我想有两个工具栏但我也希望它们在同一条线上.我的意思是我不希望其中一个低于或高于另一个.所以他们将成为我不想要的牵引线.
我怎样才能做到这一点?
如何将Salesforce与Google地图集成?我只是在寻找有关如何...的信息
我正在使用Python Imaging Library的ImageDraw.line()绘制一些行,但是它们看起来很可怕,因为我找不到一种方法来对它们进行反别名.如何在PIL中消除别名线?如果PIL无法做到,那么还有另一个Python图像处理库吗?
如何在GIT中禁用自动合并?
目的是在调用命令链期间具有与自动合并中的冲突合并解析相同的行为:
$ git fetch
$ git merge some_branch
$ git mergetool
Run Code Online (Sandbox Code Playgroud)
在合并冲突的情况下,最后一个命令引导我们对文件进行3向合并.我想有一个简单的方法在没有冲突合并的情况下对文件执行相同的3向合并.
我在互联网上找不到任何解决方案,有没有?
我有一些解决方法,但它宁愿避免它.
提前致谢,
阿莱克斯