小编Tim*_*ter的帖子

如何使用货币符号将字符串解析为十进制?

我不知道为什么这不起作用:

string s = "12,00 €";
var germanCulture = CultureInfo.CreateSpecificCulture("de-DE");
decimal d;
if (decimal.TryParse(s, NumberStyles.AllowCurrencySymbol, germanCulture, out d))
{
    // i want to get to this point
    Console.WriteLine("Decimal value: {0}", d);
}
Run Code Online (Sandbox Code Playgroud)

.net c# string globalization type-conversion

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

.OrderBy(DayOfWeek)将星期日视为本周结束

我按他们的System.DayOfWeek财产订购了许多物品.

DAYOFWEEK把星期日作为开始的一周,而我想它进行排序,因此出现在年底.它只是一个枚举,所以我无法修改它.但是我读过我可以创建一个自定义文化,但认为这可能是过度的.

List<TimeBand> orderedTimeBands = timeBands.OrderBy(x => x.DayName).ToList()

所以DayNameDayOfWeek,我希望orderedTimeBands从周一 - >周日订购.

有任何想法吗?

.net c# linq dayofweek

17
推荐指数
2
解决办法
4205
查看次数

为什么调试器的断点条件允许赋值语句为bool-condition?

这是非常危险的,所以我想知道为什么它是允许的.由于我经常需要在VB.NET和C#之间切换,我有时会添加断点条件,如下所示:

foo = "bah"
Run Code Online (Sandbox Code Playgroud)

如果string变量foo"bah,我想停止,所以正确的方法是使用foo == "bah"而不是foo = "bah".

但它"有效".在编译或运行时,您不会收到任何警告或错误.但实际上这会修改变量foo,"bah"即使它具有不同的值也会使它始终存在.由于这种情况无声地发生(断点永远不会被击中),因此非常危险.

为什么允许?我的推理错误在哪里(除了混淆C#和VB.NET语法)?在C#中(与VB.NET相反),赋值语句返回已分配的值,因此不是a bool,而是string在这种情况下为a.但是bool如果你选中"Is True"框,则 断点条件必须是a .

这是一个小样本"程序"和来自我(德国)IDE的截图:

static void Main()
{
    string foo = "foo";
    // breakpoint with assignment(foo = "bah") instead of comparison(foo == "bah"):
    Console.WriteLine(foo);  // bah, variable is changed from the breakpoint window
}
Run Code Online (Sandbox Code Playgroud)

断点条件对话框:

在此输入图像描述

作为图像的代码包括断点:

在此输入图像描述

c# vb.net debugging breakpoints visual-studio-2010

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

删除列表中除第一项以外的所有项目

让我们考虑一下如下清单

列表包含值为a,b,c,d....

我需要一个查询来删除列表中除"a"以外的所有值.

.net c# list

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

SQL Server 2008 - 按字符顺序排列数字

我的表中有以下值:

ABC
ABC1
ABC2
ABC3 and so on...

ABC11
ABC12
ABC13 and so on..

ABC20
ABC21
ABC22 and so on..
Run Code Online (Sandbox Code Playgroud)

所以基本上我所拥有的是任何字符串值(不总是ABC,任何字符串值),可以跟随数字,也可以只是没有数字的字符串.

当我通过我的列asc从表顺序中选择*时,我得到以下结果:

ABC
ABC1
ABC11
ABC12
ABC13
ABC2
ABC20
ABC21
ABC22
ABC3
ABC31
ABC32
Run Code Online (Sandbox Code Playgroud)

我需要用数字排序:

ABC
ABC1
ABC2
ABC3
ABC11
ABC12
ABC13
ABC20
ABC21
ABC22
ABC31
ABC32
Run Code Online (Sandbox Code Playgroud)

如何实现这一目标?

sql-server

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

WPF密钥是数字或数字

previewKeyDown在窗口中有方法,我想知道按下的键只有A-Z字母或1-0数字(没有anyF1..12,输入,ctrl,alt等 - 只是字母或数字).

我试过了Char.IsLetter,但我需要给char,所以e.key.ToString()[0]不起作用,因为它几乎每次都是一封信.

c# wpf key keydown

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

ASP.NET Gridview中没有时间的日期格式

在ASP.NET gridview中绑定两个日期.我想显示dd/MM/yyyy但显示10/03/2014 00:00:00.

<asp:TemplateField HeaderText ="Fromdate" >
   <ItemTemplate >
   <asp:Label ID="lblFromDate" runat="server" 
              DataFormatString="{0:dd/MM/yyyy}" 
              HtmlEncode="false"  
              Text='<%# Eval("Fromdate") %>' />
    </ItemTemplate>
</asp:TemplateField>
Run Code Online (Sandbox Code Playgroud)

c#

14
推荐指数
3
解决办法
6万
查看次数

LINQ:单个具有多个条件的区域和具有单个条件的连续Wheres之间的差异

Where在LINQ 中连接多个而不是使用Where具有多个条件的单个数据是否有任何缺点?

我问,因为使用多个Where可以帮助降低复杂性并大大提高代码的可维护性.

考虑下面的代码,chargeList是一个List<Charge>来源BindingSource:

IEnumerable<Charge> matchingCharges = chargeList;
if(!string.IsNullOrWhiteSpace(channelAbbr))
    matchingCharges = matchingCharges
        .Where(c => c.ChannelAbbreviation == channelAbbr);
if(deliveryNoteDate.HasValue)
    matchingCharges = matchingCharges
        .Where(c => c.ArrivalAt == deliveryNoteDate.Value);
if(chargeID.HasValue)
    matchingCharges = matchingCharges
        .Where(c => c.ChargeID == chargeID.Value);
Run Code Online (Sandbox Code Playgroud)

这个简洁的代码将处理filter,none,one,two,all的所有组合.

否则我必须if-else在一个单独使用和多个条件Where.

这是我想到的最好的:

// important to keep code readable:
bool filterChannel = !string.IsNullOrWhiteSpace(channelAbbr);
bool filterDate = deliveryNoteDate.HasValue;
bool filterID = chargeID.HasValue;

if(!filterChannel && !filterDate && !filterID)
{
    // take all …
Run Code Online (Sandbox Code Playgroud)

c# linq

14
推荐指数
2
解决办法
2328
查看次数

为什么System.Object中定义的MemberwiseClone受到保护?

我想知道为什么MemberwiseClone被定义为受保护.这意味着只有派生类型才能访问它.如果将其定义为公共问题,会出现什么问题?

.net

13
推荐指数
2
解决办法
2357
查看次数

如何将DataAdapter的超时时间增加到3分钟?

当我使用以下方法执行查询时,我得到超时.

所以我的问题是:如何将超时设置为180秒?

我正在使用连接来使用queryresult填充dataSet.

 internal static DataSet executeQuery(string queryString)
 {
     // #connection
     DataSet dataSet = new DataSet();
     string connectionString = Connection.connectionStringSQL01NavProvider();
     OleDbConnection connection = new OleDbConnection(connectionString);
     OleDbDataAdapter adapter = new OleDbDataAdapter(queryString, connectionString);

     // Open the connection and fill the DataSet. 
     connection.Open();
     try
     {
         adapter.Fill(dataSet);
         DataTable dt = new DataTable();
         dt = dataSet.Tables[0];
         DataRow dr;
         try
         {
             dr = dt.Rows[0];
         }
         catch 
         {

         }
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.Message);
         System.Windows.Forms.MessageBox.Show("Error executeQuery().! " + ex.Message);
     }

     return dataSet;
 }
Run Code Online (Sandbox Code Playgroud)

c# sql-server timeout

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