草庐IT

c# - 缓存来自 [n async] 工厂方法的结果,前提是它不抛出

更新:在@usr指出我错误地假设Lazy后进行了大量修改的默认线程安全模式是LazyThreadSafetyMode.PublicationOnly...我想通过async延迟计算一个值工厂方法(即它返回Task)并在成功时将其缓存。在异常(exception)情况下,我希望我可以使用它。然而,我不想成为theexceptioncachingbehavior的牺牲品。那Lazy处于默认模式(LazyThreadSafetyMode.ExecutionAndPublication)Exceptioncaching:Whenyouusefactorymethods,exceptionsar

c# - 列出 1...n 之间的 k 个整数的所有可能组合(n 选择 k)

无缘无故,我决定寻找一种算法,该算法可以产生1...n之间的k个整数的所有可能选择,其中k个整数之间的顺序无关紧要(n选择k个东西)。出于完全相同的原因,这根本不是原因,我也用C#实现了它。我的问题是:您是否发现我的算法或代码有任何错误?而且,更重要的是,您能推荐一个更好的算法吗?请多关注算法而不是代码本身。这不是我写过的最漂亮的代码,但如果您看到错误,一定要告诉我。编辑:Alogirthm解释-我们持有k个指数。这会创建k个嵌套的for循环,其中循环i的索引是indices[i]。它模拟k个for循环,其中indices[i+1]属于嵌套在indices[i]循环中的循环。indic

c# - 如何防止 xml 将/r/n 转换为

我这里有一个小代码:stringattributeValue="Hello"+Environment.NewLine+"Hello2";XElementelement=newXElement("test");XElementsubElement=newXElement("subTest");XAttributeattribute=newXAttribute("key","Hello");XAttributeattribute2=newXAttribute("key2",attributeValue);subElement.Add(attribute);subElement.Add(at

c# - 如何在 Linq GroupBy 中选择前 N 行

希望你能帮我解决这个问题。我有一个预订列表,我想在其中获取每组TourOperators中的前2行。这是一个数据样本:Listlist=newList();list.Add(newBooking(){BookingNo="31111111",DepDate=newDateTime(2011,5,1),TourOperator="SPI"});list.Add(newBooking(){BookingNo="32222222",DepDate=newDateTime(2011,5,2),TourOperator="SPI"});list.Add(newBooking(){BookingN

c# - 在 C# 中获取一个月的第 n 个工作日

这个问题在这里已经有了答案:关闭12年前。PossibleDuplicate:HowdoIdetermineifagivendateisNthweekdayofthemonth?我如何获得该月的第n个工作日?例如:“2010年7月”的第二个星期一=07/12/2010。寻找像这样的函数:publicDateTimeGetNthWeekofMonth(DateTimedate,intnthWeek,DayOfWeekdayofWeek){//returnthedateofnthweekofmonth}从上面可以看出,该函数的参数将为(“2010年7月的任何日期”,2,星期一)。

c# - 从可枚举中获取下一个 N 个元素

上下文:C#3.0、.Net3.5假设我有一个生成随机数的方法(永远):privatestaticIEnumerableRandomNumberGenerator(){while(true)yieldreturnGenerateRandomNumber(0,100);}我需要将这些数字以10个为一组进行分组,所以我想要这样的东西:foreach(IEnumerablegroupinRandomNumberGenerator().Slice(10)){Assert.That(group.Count()==10);}我已经定义了Slice方法,但我觉得应该已经定义了一个。这是我的切片方法,

c# - 生成一个范围内的 N 个随机且唯一的数字

使用C#在给定范围内生成N个唯一数字的有效方法是什么?例如,生成6个介于1和50之间的唯一数字。一种懒惰的方法是简单地在循环中使用Random.Next()并将该数字存储在数组/列表中,然后重复并检查是否它已经存在或不存在等等。有没有更好的方法来生成一组随机但唯一的数字?为了添加更多上下文,我想使用它们的索引从集合中随机选择N个项目。谢谢 最佳答案 取一个包含50个元素的数组:{1,2,3,....50}使用随机改组数组的任何标准算法对数组进行改组。修改后的数组的前六个元素就是您要查找的内容。

C# 求第 N 个根

我用下面的方法计算double值的N次方根,但是计算240次方根需要很多时间。我发现了牛顿法,但无法将其实现为一种方法。任何帮助,将不胜感激。staticdoubleNthRoot(doubleA,intN){doubleepsilon=0.00001d;//doublen=N;doublex=A/n;while(Math.Abs(A-Power(x,N))>epsilon){x=(1.0d/n)*((n-1)*x+(A/(Power(x,N-1))));}returnx;} 最佳答案 staticdoubleNthRoot(dou

c# - 使用 TweetSharp 返回最近的 n 条推文

我正在尝试使用TweetSharp获取最近的200条推文,但由于某种原因它返回了12条。varservice=newTwitterService(_consumerKey,_consumerSecret,tokenClaim,tokenSecret);IAsyncResultresult=service.BeginListTweetsOnUserTimeline(newListTweetsOnUserTimelineOptions{Count=200}IEnumerabletweets=service.EndListTweetsOnUserTimeline(result);知道为什么会

c# - 每n分钟分组

我正在玩弄LINQ,我想知道按分钟分组有多容易,但我不想每分钟分组一次,而是每5分钟分组一次。例如,目前我有:varq=(fromcrinJK_ChallengeResponseswherecr.Challenge_id==114groupcr.Challenge_idbynew{cr.Updated_date.Date,cr.Updated_date.Hour,cr.Updated_date.Minute}intogselectnew{Day=newDateTime(g.Key.Date.Year,g.Key.Date.Month,g.Key.Date.Day,g.Key.Hour,