我不知道为什么这不起作用:
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) 我按他们的System.DayOfWeek财产订购了许多物品.
DAYOFWEEK把星期日作为开始的一周,而我想它进行排序,因此出现在年底.它只是一个枚举,所以我无法修改它.但是我读过我可以创建一个自定义文化,但认为这可能是过度的.
List<TimeBand> orderedTimeBands = timeBands.OrderBy(x => x.DayName).ToList()
所以DayName是DayOfWeek,我希望orderedTimeBands从周一 - >周日订购.
有任何想法吗?
这是非常危险的,所以我想知道为什么它是允许的.由于我经常需要在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)
断点条件对话框:

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

让我们考虑一下如下清单
列表包含值为a,b,c,d....
我需要一个查询来删除列表中除"a"以外的所有值.
我的表中有以下值:
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)
如何实现这一目标?
我previewKeyDown在窗口中有方法,我想知道按下的键只有A-Z字母或1-0数字(没有anyF1..12,输入,ctrl,alt等 - 只是字母或数字).
我试过了Char.IsLetter,但我需要给char,所以e.key.ToString()[0]不起作用,因为它几乎每次都是一封信.
在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) 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) 我想知道为什么MemberwiseClone被定义为受保护.这意味着只有派生类型才能访问它.如果将其定义为公共问题,会出现什么问题?
当我使用以下方法执行查询时,我得到超时.
所以我的问题是:如何将超时设置为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)