问题列表 - 第6372页

c#Lambda,LINQ ....改进这个方法

我正在学习更多关于LINQ和Lambda表达式的过程,但在这个阶段,我根本就没有"获取"Lambda表达式.

是的......我是这些新概念的新手.

我的意思是,我看到的每个例子都说明了如何添加或减去参数.

那些更复杂的东西怎么样?

为了帮助我获得更好的理解,我已经为希望参与的任何人发布了一个小挑战.我有以下方法将接受任何字符串,并将空格放在任何大写字符和它们的前一个邻居之间(如下所示).


"SampleText"="Sample Text"
"DoesNotMatterHowManyWords"="不重要多少字"

这是代码;

public static string ProperSpace(string text)
{
    var sb = new StringBuilder();
    var lowered = text.ToLower();

    for (var i = 0; i < text.Length; i++)
    {
        var a = text.Substring(i, 1);
        var b = lowered.Substring(i, 1);
        if (a != b) sb.Append(" ");
        sb.Append(a);
    }

    return sb.ToString().Trim();
}
Run Code Online (Sandbox Code Playgroud)

我确信上面的方法可以重写为与LINQ或Lambda表达式一起使用.我希望这项练习能够帮助我开启这些新概念.

此外,如果您有任何LINQ或Lambda教程的良好链接,请提供.


编辑

感谢所有贡献的人.虽然当前的方法确实可以完成这项工作,但我很高兴看到它可以被修改为使用lambda表达式.我也承认这可能不是LINQ的最佳例子.

这是使用Lambda表达式的新更新方法(经测试可用);

public static string ProperSpace(string text)
{
    return text.Aggregate(new StringBuilder(), (sb, c) =>
    {
        if (Char.IsUpper(c)) sb.Append(" ");
        sb.Append(c);
        return …
Run Code Online (Sandbox Code Playgroud)

c# linq lambda

5
推荐指数
2
解决办法
2337
查看次数

request.serverVariables()"URL"vs"Script_Name"

我正在维护一个经典的asp应用程序,在查看代码时,我遇到了两行类似的代码:

Request.ServerVariables("URL")
' Output: "/path/to/file.asp"

Request.ServerVariables("SCRIPT_NAME")
' Output: "/path/to/file.asp"
Run Code Online (Sandbox Code Playgroud)

我不明白......有什么区别?他们都忽略了我设置的URL重写,它将/ path文件夹作为根文档(上面的URL被重写为"/to/file.asp")

更多信息:该站点部署在IIS 7上

url request.servervariables asp-classic

5
推荐指数
2
解决办法
2万
查看次数

为什么将未使用的返回值转换为void?

int fn();

void whatever()
{
    (void) fn();
}
Run Code Online (Sandbox Code Playgroud)

是否有任何理由将未使用的返回值转换为无效,或者我是否认为这完全是浪费时间?

跟进:

那看起来相当全面.我认为这比评论未使用的返回值更好,因为自我记录代码比评论更好.就个人而言,我会关掉这些警告,因为这是不必要的噪音.

如果一个虫子逃脱,我会吃掉我的话......

c c++ void

105
推荐指数
7
解决办法
4万
查看次数

在一次调用中Request.Url.Host和ApplicationPath

有没有什么办法让HttpContext.Current.Request.Url.HostHttpContext.Current.Request.ApplicationPath一个电话吗?

像"完整的应用程序URL"?

编辑:澄清 - 我需要的是[]中的部分:

http://[www.mysite.com/mywebapp]/Pages/Default.aspx
Run Code Online (Sandbox Code Playgroud)

我只是出于好奇而问.

编辑2:感谢所有的回复,但没有一个是我正在寻找的.仅供参考,我以这种方式解决了问题(但我仍然有兴趣知道是否有更顺畅的方式):

public string GetWebAppRoot()
{
    if(HttpContext.Current.Request.ApplicationPath == "/")
        return "http://" + HttpContext.Current.Request.Url.Host;
    else
        return "http://" + HttpContext.Current.Request.Url.Host + HttpContext.Current.Request.ApplicationPath;
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net code-behind httpcontext

16
推荐指数
3
解决办法
7万
查看次数

使用Ruby在命令行中包含文件

当运行ruby脚本时

ruby some-script.rb
Run Code Online (Sandbox Code Playgroud)

我如何动态地包含文件(例如配置文件)?

ruby command-line include

6
推荐指数
1
解决办法
2665
查看次数

是否可以从任何页面进入rootViewController页面?

我正在尝试构建一个iPhone应用程序.我正在尝试在基于View的应用程序中构建它.

假设我从x.xib nib文件转到y.xib文件.和x.xib nib文件来自root.xib文件.我想从y.xib转到root.xib文件.

怎么样?

xcode objective-c

1
推荐指数
1
解决办法
2596
查看次数

C++/CLI:实现IList和IList <T>(显式实现默认索引器)

我想实现的是同时实现了一个C++/CLI类IListIList<T>.

由于它们具有重叠的名称,我必须明确地实现其中一个,并且自然选择应该是IList.

索引器的隐式实现是:

using namespace System::Collections::Generic;
generic<class InnerT> public ref class MyList : public System::Collections::IList, IList<InnerT> {
  // ...
  property InnerT default[int]{
    virtual InnerT get(int index);
    virtual void set(int index, InnerT item);
  }
}
Run Code Online (Sandbox Code Playgroud)

我现在正在尝试声明IList的默认索引器.

我的猜测是这样的:

  property Object^ System::Collections::IList::default[int]{
    virtual Object^ System::Collections::IList::get(int index);
    virtual void System::Collections::IList::set(int index, Object^ item);
  }
Run Code Online (Sandbox Code Playgroud)

但那只是给了我

错误C2061:语法错误:标识符'default'

任何提示?

c++-cli indexer explicit-interface

5
推荐指数
1
解决办法
5341
查看次数

从Amazon S3流式传输MP3

有没有办法通过嵌入在网站上的Flash小部件或其他方法流式传输存储在Amazon S3上的MP3?

streaming mp3 amazon-s3

30
推荐指数
2
解决办法
3万
查看次数

如何在Leopard,Mac OS X 10.5上安装MySQL?

我跟着这个教程到最后,然后发现它不能正常工作.我想我已经安装了所有东西,但是当我输入时

mysql -uroot
Run Code Online (Sandbox Code Playgroud)

我只能得到

-bash: mysql: command not found
Run Code Online (Sandbox Code Playgroud)

注意:我没有跳过"设置路径"步骤.在第一次运行此命令时:

mate ~/.bash_login
Run Code Online (Sandbox Code Playgroud)

这带来了一个空文件.所以我添加了这一行:

export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH"
Run Code Online (Sandbox Code Playgroud)

我保存文件,关闭TextMate,执行以下命令:

. ~/.bash_login
Run Code Online (Sandbox Code Playgroud)

...继续学习本教程.根据你的建议,我想可能文件实际上没有得到保存.所以我运行以下命令再次调出文件:

mate ~/.bash_login
Run Code Online (Sandbox Code Playgroud)

......但文件的内容应该是应有的.

有什么建议?

mysql macos installation

0
推荐指数
1
解决办法
1540
查看次数

我可以获取从 SqlDataSource 执行的查询吗?

我在我的 SqlDataSource 上有一个针对我的 SelectCommand 的 sql 查询。它看起来像下面这样:

SELECT * FROM Books WHERE BookID = @BookID
Run Code Online (Sandbox Code Playgroud)

TextBox 使用 Asp:ControlParameter 提供 @BookID 参数。

当我在单步执行代码时查看 SelectCommand 时,我看到:

SELECT * FROM Books WHERE BookID = @BookID
Run Code Online (Sandbox Code Playgroud)

我真正想看到的是,如果这个人在 TextBox 中输入 3,我想看到

SELECT * FROM Books WHERE BookID = 3
Run Code Online (Sandbox Code Playgroud)

我不知道如何访问上述内容?

c# asp.net sqldatasource

5
推荐指数
1
解决办法
4517
查看次数