小编Fre*_*örk的帖子

C#代码获取A到Z之类的字符串列表?

如何在C#中获取从"A:"到"Z:"的字符串列表?像这样的东西:

List<string> list = new List<string>();
for (int i = 0; i < 26; i++)
{
   list.Add(string.Format("{0}:", Convert.ToChar('A' + i));
}
Run Code Online (Sandbox Code Playgroud)

抱歉,我现在没有可用于验证的VS来验证.顺便说一句,是否有网站可用于交互式测试代码片段?

c# visual-studio-2005

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

C#3.0从字符串中删除字符

我有一个字符串,该怎么做

  1. 删除除英文字母以外的所有字符(a..z)
  2. 用一个空格替换所有空格序列

你会怎么用C#3.0做到这一点?

c# string

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

依赖注入和特定的依赖实现

首先让我介绍没有依赖注入的实现(这将打破依赖反转原则):

public class MyValidator
{
  private readonly IChecksumGenerator _checksumGenerator;

  public MyValidator()
  {
     _checksumGenerator = new MyChecksumGenerator();
  }

  ...
}
Run Code Online (Sandbox Code Playgroud)

为了使此代码可测试,请注入IChecksumGenerator:

public class MyValidator
{
  private readonly IChecksumGenerator _checksumGenerator;

  public MyValidator(IChecksumGenerator checksumGenerator)
  {
    _checksumGenerator = checksumGenerator; 
  }

  ...
}
Run Code Online (Sandbox Code Playgroud)

现在,如果需要,我们可以轻松地测试MyValidator和stub checksumGenerator。但是MyValidator实现在算法上与特定的IChecksumGenerator实现耦合(它不能与任何其他实现一起使用)。因此出现一些问题:

  1. 我们引入了可能会注入错误的IChecksumGenerator的可能性(例如,由于IoC容器配置错误)
  2. 由于MyValidator的私有实现细节(耦合到MyChecksumGenerator)超出了类,因此我们破坏了封装

我想到的最好的解决方案是:

public class MyValidator
{
  private readonly IChecksumGenerator _checksumGenerator;

  public MyValidator()
  {
    _checksumGenerator = new MyChecksumGenerator;
  }

  internal MyValidator(IChecksumValidator checksumValidator)
  {
    _checksumValidator = checksumValidator;
  }

  ...
}
Run Code Online (Sandbox Code Playgroud)

在这里,我介绍了用于测试目的的特殊构造函数(因此我可以在测试中对IChecksumValidator进行存根),但是公共构造函数将创建与之耦合的实现(因此封装不会中断)。创建一些用于测试目的的代码有点难看,但是看起来在这种情况下是有意义的。

您将如何解决这个问题?

.net c# dependency-injection

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

ASP.NET捕获并替换Global.asax中的输出

我需要替换从我网站上的每个页面发送的一些数据,我认为使用Global.asax进行处理.这是我到目前为止尝试过的:

void Application_PreSendRequestContent(object sender, EventArgs e)
{
    System.IO.StreamReader sr = new System.IO.StreamReader(Response.OutputStream);
    String output = sr.ReadToEnd();

    Response.ClearContent();
    Response.Write("Testing..");
}
Run Code Online (Sandbox Code Playgroud)

但这给了我一个ArgumentException.我究竟做错了什么?有没有更好的方法来做到这一点?

谢谢

c# asp.net global-asax

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

C#中的选项卡式用户界面

我想创建一个简单的选项卡式界面应用程序.我之前在WPF中使用每个选项卡中的usercontrol完成了它,并且我与主要表单进行通信,搜索父元素(表单或选项卡控件)

我怎么能在WinForms中做同样的事情?我需要在每个标签内放置哪个元素?

谢谢.

c# user-interface interface tabbed-interface winforms

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

将字符串解析为指定的长度(不剪切单词)

我有一个长字符串,我需要解析成一个长度不超过40个字符的字符串数组.对我来说,这个棘手的部分是确保正则表达式找到40个字符之前的最后一个空格,以便在字符串之间进行干净的中断,因为我不希望单词被切掉.

regex vb.net string parsing

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

如何检查字符串数组包含特定的字符串?

我正在使用.NET 2.0我有一个很大的字符串数组.我想检查数组中是否存在特定字符串,我不确定,是否优化了以下代码或者我需要对其进行更优化.请指导.

string []test_arr= new string[]{"key1","key2","key3"};
Boolean testCondition = (new List<string>(test_arr)).Contains("key3");
Run Code Online (Sandbox Code Playgroud)

我也想了解更多

  1. .NET泛型
  2. .NET属性
  3. .NET思考

是否有任何好的参考或书籍,有人已经参考,然后帮助我!

c# arrays generics collections attributes

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

在LINQ Select期间访问递增的整数

Dim project = new Project(1)
Dim tasks = Task.GetTasks()
Return <?xml version="1.0" encoding="UTF-8"?>
               <Project xmlns="http://schemas.microsoft.com/project">
                   <Name><%= project.name %></Name>
                   <Tasks>
                       <%= tasks.Select(Function(t) _
                           <Task>
                               <ID><%= tasks.IndexOf(t) + 1 %></ID>                               
                           </Task> _
                           ) %>
                   </Tasks>
               </Project>
Run Code Online (Sandbox Code Playgroud)

我试图tasks.IndexOf(t) + 1用一些更简单的东西来取代.这有什么内置功能吗?

Hrmm xml文字在这里似乎没有很好的翻译....

c# vb.net

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

如何处置<asp:ObjectDataSource>

我怎么处理<asp:ObjectDataSource>?我的意思是,没有代码,在aspx文件中有这样的:

<asp:ObjectDataSource ID="CategoryDataSource" runat="server" 
    SelectMethod="GetCategoriesFilter" 
    TypeName="BLL.CategoryBLL">
</asp:ObjectDataSource>
Run Code Online (Sandbox Code Playgroud)

BLL.CategoryBll类实现IDisposable.我必须处理它吗?

asp.net idisposable

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

System.Threading.Timer不会触发

我是新来的...

我有一个问题,如果有人可以帮助我.

它是关于计时器(System.Threading.Timer).

我想打破不可避免的递归:我在datarow中有两列,它们是相互依赖的(price_without_VAT和price_with_VAT).设置其中一个肯定会导致StackOverflowException.所以这就是这个想法:

bool flag = true;
void Reset(object state) { flag = true; }
Run Code Online (Sandbox Code Playgroud)

现在,包装用于更改其中一列的值的方法:

{
    if(flag)
    {
        flag = false;
        System.Threading.Timer tmr = new System.Threading.Timer(new System.Threading.TimerCallback(Reset), null, 10, System.Threading.Timeout.Infinite);
        datarow.other_column = value;
    }
}
Run Code Online (Sandbox Code Playgroud)

datarow.other_column.value行将立即触发上述方法,但不会有递归,因为flag为false.在10毫秒标志应该回到真,一切都恢复正常.

现在,当我按照DEBUGGER中的代码进行操作时,一切正常,但是当我启动应用程序NORMALLY重置功能根本不会触发,标志永远停留在虚假状态,并且一切都是假的.我玩弄due_time参数但似乎没有任何帮助.

有任何想法吗?

c# timer

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