string dateString = "12/9/2014 10:09:28 AM";
DateTime dateTime;
if (DateTime.TryParse(dateString, CultureInfo.GetCultureInfo("en-GB"),
DateTimeStyles.AssumeUniversal, out dateTime))
{
Console.WriteLine(dateTime); //"9/12/2014 10:09:28 PM";
}
Run Code Online (Sandbox Code Playgroud)
当我用"en-US"做同样的事情时,他们会换到 "12/9/2014 10:09:28 PM"
他们为什么每天和每月交换?
他们现在的日期在哪里,一个月在哪里?
我知道我们可以找到这样的重复项:
var dublicateItems = itemStrings.GroupBy(x => x)
.Where(x => x.Count() > 1)
.ToDictionary(g => g.Key, g => g.Count());
Run Code Online (Sandbox Code Playgroud)
和这样的不同项目:
var distinctItems = itemStrings.Distinct();
Run Code Online (Sandbox Code Playgroud)
但是如何将它与以下字符串列表结合起来:
输入: a, b, b, c, d, d, d, d
输出: a, b (2 times), c, d (4 times)
我想找到方程的所有正整数解,a^3 + b^3 = c^3 + d^3其中a, b, c, d是整数1 to 1000
蛮力解决方案继续计算每个(a,b)对的所有(c,d)对.我想改进这个算法.我想创建一次(c,d)对的列表.然后,当我们有(a,b)对时,找到(c,d)列表中的匹配.我们可以通过将每个(c,d)对插入到哈希表中来快速定位匹配,哈希表从总和映射到对(或者更确切地说是具有该总和的对的列表)
n= 1000
for c from 1 to n
for d from 1 to n
result = c^3 + d^3
append (c,d) to list at value map[result]
for a from 1 to n
for b from 1 to n
result = a^3 + b^3
list = map.get(result)
foreach pair in list
print a,b, pair
Run Code Online (Sandbox Code Playgroud)
我是对的,我们有O(n ^ 2)解决方案吗?为什么?我们怎样才能改善它?什么是c#实现?
此外,也许一旦我们得到了所有(c,d)对的映射,我们就可以直接使用它.我们不需要生成(a,b)对.每个(a,b)都已经在地图中.如何实现这个想法?
我有以下代码scheduleConfiguration.Time在UTC 中接受输入并ticks在本地时间返回。
scheduleConfiguration.Time equal {9/13/2015 10:00:00 AM} in UTC
var localTime = scheduleConfiguration.Time.ToLocalTime(); {9/13/2015 1:00:00 PM} in Local
var executionTime = new TimeSpan(localTime.TimeOfDay.Ticks);
Run Code Online (Sandbox Code Playgroud)
我更改了数据合同scheduleConfiguration.Time,因此我需要使用TimeSpan TimeOfDay而不是DateTime Time,但是我需要拥有相同的合同executionTime。所以我下一步
var local time = DateTime.Now.Date.Add(scheduleConfiguration.TimeOfDay);//{9/13/2015 10:00:00 AM} in Local
var executionTime = new TimeSpan(localTime.Ticks);
Run Code Online (Sandbox Code Playgroud)
所以我有3个小时的时差(我有UTC +3时区)
在第一种情况下,如何获得与DateTime相同的结果?
如何简化以下代码:
try
{
var metadata = GetMetadata();
return metadata ?? _provider.GetLatestMetadata(guid);
}
catch (AuthenticationException)
{
return _provider.GetLatestMetadata(guid);
}
catch (HttpUnauthorizedRequestException)
{
return _provider.GetLatestMetadata(guid);
}
catch (WebException)
{
return _provider.GetLatestMetadata(guid);
}
catch (VcenterException)
{
return _provider.GetLatestMetadata(guid);
}
Run Code Online (Sandbox Code Playgroud)
我想避免代码重复.
可能吗?
我有以下简单的类:
class Stack {
public class Node // inner class
{
string item;
Node next;
}
}
Run Code Online (Sandbox Code Playgroud)
包含N项目的堆栈使用:8 bytes (reference to String)+ 8 bytes (reference to Node)+ 16 bytes (sync block index + type object pointer).但我想知道内部课程开销.我需要额外添加8 bytes吗?所以N个项目的堆栈使用~40*N字节或~32*N字节?
foreach (var doc in await records.Find(filter).ToListAsync())
{
var query = Builders<JobInfoRecord>.Filter.Eq("JobTypeValue", doc.JobTypeValue);
var updatedJobInfo = Regex.Replace(doc.SerializedBackgroundJobInfo, pattern, "<$1></$1>");
var update = Builders<JobInfoRecord>.Update.Set("SerializedBackgroundJobInfo", updatedJobInfo);
records.UpdateOneAsync(query, update).Wait();
}
Run Code Online (Sandbox Code Playgroud)
这是更新文档的最佳方法吗(我将password名称中包含的xml字符串中的标签值更改为空标签:?<adminPassword></adminPassword>或demo)?我正在使用Mongo驱动程序2.0.2
我有一个包含500 000文档的集合,我希望大约每分钟进行一次更新。3000文件。
如何提高操作性能update?
我读了一个单元测试,检查无效免费或双免费:
int main() {
char *a = (char*) my_malloc(200);
char *b = (char*) my_malloc(50);
char *c = (char*) my_malloc(200);
char *p = (char*) my_malloc(3000);
(void) a, (void) c;
memcpy(p, b - 200, 450);
my_free(p + 200);
printstatistics();
}
Run Code Online (Sandbox Code Playgroud)
为什么我们需要转换char*到void,当我们这样做投在内存中会发生什么?
很多时候我看到程序员做了以下演员
unsigned long long minimumValue;
minimumValue = (unsigned long long)-1;
Run Code Online (Sandbox Code Playgroud)
但为什么他们这样做,而不是int minimumValue = -1?
我有以下算法来查找所有三元组
for (int i = 0; i < N; i++)
for (int j = i+1; j < N; j++)
for (int k = j+1; k < N; k++)
if (a[i] + a[j] + a[k] == 0)
{ cnt++; }
Run Code Online (Sandbox Code Playgroud)
我现在有三重循环,我检查所有三元组.如何显示可以从N个项目中选择的不同三元组的数量是N*(N-1)*(N-2)/6多少?
如果我们有两个循环
for (int i = 0; i < N; i++)
for (int j = i+1; j < N; j++)
...
Run Code Online (Sandbox Code Playgroud)
当i = 0我们去到第二循环N-1时间
i = 1=> N-2次
...
i = N-1 => …