通常,当我使用lambdas时,我只使用"a,b,c,d ......"作为变量名称,因为类型很容易推断,我发现短名称更容易阅读.这是一个例子:
var someEnumerable = GetSomeEnumerable();
var somethingElseList = someEnumerable.Select(a => a.SomeProperty)
.OrderBy(a => a.SomePropertyField);
var someDictionary = somethingElseList.ToDictionary(a => new SomeClass(a.Prop1),
a => a);
Run Code Online (Sandbox Code Playgroud)
有些人质疑这个命名,并且更愿意看到长输入的名称,如下所示:
var someEnumerable = GetSomeEnumerable();
var somethingElseList = someEnumerable.Select(importantObj => importantObj.SomeProperty)
.OrderBy(objsInfo => objsInfo.SomePropertyField);
var someDictionary = somethingElseList.ToDictionary(theInfoId => new SomeClass(theInfoId.Prop1),
theInfoId2 => theInfoId2);
Run Code Online (Sandbox Code Playgroud)
由于范围很窄(在parens之间),除非你变得愚蠢并将它们嵌套,否则我会发现阅读短名称更容易.
我没有被上面使用的愚蠢的命名示例所吸引,对Lambda变量名称的一般共识是什么?要简短的名字,还是不要简短的名字?
您可以编写的最少量的代码来创建,排序(升序)和打印100个随机正整数的列表?至少代码量我的意思是整个源文件中包含的字符,所以要缩小.
我有兴趣使用任何和所有编程语言来查看答案.让我们尝试为每种语言保留一个答案,编辑前一个以纠正或简化.如果你不能编辑,评论?
我是一名专家C#3/.NET 3.5程序员,希望使用System.Reflection.Emit.DynamicMethod开始运行一些运行时代码.我很想通过熟悉IL来提升到一个新的水平.
任何指针(双关语)?
在DirectoryInfo类的实例上调用DirectoryInfo.GetDirectories(".")时,该实例指向有效文件夹(不包括驱动器根),结果是DirectoryInfo数组,其第一个(也是唯一的)元素指向名为相同的无效目录就其本身而言,低于自身.
例如:
static void Main(string[] args)
{
DirectoryInfo di = new DirectoryInfo("c:\\temp");
DirectoryInfo[] dis = di.GetDirectories(".");
Console.WriteLine(dis[0].FullName);
}
Run Code Online (Sandbox Code Playgroud)
打印出一个不存在的目录:
c:\temp\temp
Run Code Online (Sandbox Code Playgroud)
据我所知,在Windows中,"." 指的是当前目录.如果方法返回"c:\ temp",那对我来说可能是可以接受的,但是返回一个具有相同名称的伪子目录似乎绝对是错误的行为.
我应该可以断言从这个函数返回的任何DirectoryInfo对象实际上都存在....对吗?!
我使用.NET Reflector反编译该类,但它导致了这种方法
internal static string[] InternalGetFileDirectoryNames(string path, string userPathOriginal, string searchPattern, bool includeFiles, bool includeDirs, SearchOption searchOption)"
Run Code Online (Sandbox Code Playgroud)
这是一个野兽,我不想走在脑海中的逻辑.这显然是一个错误恕我直言.
仅供参考 - 在某人要求之前,"*"按预期工作.
有谁知道我在哪里可以找到Stream splitter实现?
我正在寻找一个Stream,并获得两个独立的流,可以独立读取和关闭,而不会相互影响.这些流应该返回与原始流相同的二进制数据.无需实施职位或寻求等......仅限前瞻性.
我更喜欢它不只是将整个流复制到内存中并多次提供服务,这对于实现自己来说相当简单.
那里有什么可以做到的吗?
所有这些都与WebHttp绑定有关,托管在自定义服务主机中(此时IIS不是一个选项).
我已经实现了自定义UserNamePasswordValidator和自定义IAuthorizationPolicy.当我将端点的绑定配置为使用基本身份验证时,一切都可以正常工作(自定义主体,自定义角色等).
我也想添加匿名HTTP访问的能力,并让我的自定义实现将匿名用户置于某些默认角色等等.(如果没有发送Authenticate标头).
现在发生的事情是,在我的任何自定义代码被命中之前,匿名用户被给予401.如果我关闭HTTP基本身份验证要求,则完全忽略Authenticate标头.
如何配置或注入Authenticate标头,以两种方式执行此操作(不创建2个单独的端点)?
我正在尝试获得匹配的正则表达式:
somefile_1.txt
somefile_2.txt
somefile_{anything}.txt
Run Code Online (Sandbox Code Playgroud)
但不匹配:
somefile_16.txt
Run Code Online (Sandbox Code Playgroud)
我试过了
somefile_[^(16)].txt
Run Code Online (Sandbox Code Playgroud)
没有运气(甚至包括"16"记录)
ODP.Net公开了将关联数组作为参数传递到C#的Oracle存储过程的能力.除非您尝试在sql查询中使用该关联数组中包含的数据,否则它是一个很好的功能.
原因是它需要上下文切换 - SQL语句需要SQL类型,并且传递到PL/SQL的关联数组实际上定义为PL/SQL类型.我相信在PL/SQL包/过程/函数中定义的任何类型都是PL/SQL类型,而在这些对象之外创建的类型是SQL类型(如果你可以提供更清晰的,请做但不是这个目标)题).
所以,问题是,您将使用什么方法将PL/SQL关联数组参数转换为可以在sql语句中使用的过程中的内容,如下所示:
OPEN refCursor FOR
SELECT T.*
FROM SOME_TABLE T,
( SELECT COLUMN_VALUE V
FROM TABLE( associativeArray )
) T2
WHERE T.NAME = T2.V;
Run Code Online (Sandbox Code Playgroud)
出于此示例的目的,"associativeArray"是由PLS_INTEGER索引的varchar2(200)的简单表.在C#中,associativeArry参数填充了字符串[].
除了使用关联数组之外,请随意讨论其他方法,但提前知道这些解决方案将不被接受.不过,我有兴趣看到其他选择.
我想在我的网站上允许Facebook Connect登录,但仍想捕获一些用户信息并将其存储在Profile对象中.还希望允许标准登录/通过身份验证,并可选择将其链接到您的Facebook帐户.很像很多网站处理Facebook Connect的方式......
我想知道是否有人预先编写了一些内容(除了CodePlex上的Facebook工具包),专门用于与Facebook Connect的Asp.NET Membership集成.
我有一个Sitecore站点,在我的两个CD服务器上,Url.Action返回一个空字符串.这适用于本地和其他9个服务器,从开发到产品,CD和CM.
部署自动化确保将完全相同web.config的部署到所有环境中; 同样适用于所有其他配置.
我的控制器继承SitecoreController正确.这不会与某个控制器或操作隔离,所有控制器和操作都会发生这种情况.
什么会Url.Action在一个环境中返回一个空字符串而不是其他环境,使用相同的代码?