草庐IT

随机整数

全部标签

C#:将年份列表构建为整数

我想创建一个C#List整数,从1930年到2010年。在我的脑海中,我能想到的唯一方法是使用for或while循环遍历数字之间的每个整数,并将它们分别添加到List中。我知道C#列表有很多有趣的方法,尤其是当您使用Linq时。谁能想出更有效的方法来做到这一点? 最佳答案 Enumerable.Range(1930,81)(MSDNdocs)将为您提供包含所需内容的枚举。第一个参数是起始值,第二个是项目数。您需要81而不是80,因为您需要1930年到2010年(含)。如果您明确希望它作为List,请使用Enumerable.Rang

c# - 在 C# 中播种伪随机数生成器

我需要一个C#的Random类实例的种子,我了解到大多数人为此使用当前时间的滴答计数器。但这是一个64位值,种子需要是一个32位值。现在我认为返回int的GetHashCode()方法应该为其对象提供合理分布的值,这可以用来避免仅使用较低的32-滴答计数的位。但是,我找不到有关Int64数据类型的GetHashCode()的任何信息。所以,我知道这无关紧要,但接下来的工作是否会像我想的那样好(我不能试错随机性),或者它可能与使用(int)DateTime.Now.Ticks作为种子?或者它甚至可能更糟?谁能阐明这一点。intseed=unchecked(DateTime.Now.Tic

c# - Asp.net 随机停止遵守表单例份验证白名单

问题上个月,我们将我们的asp.net网站场从Server2008R2迁移到Server2012R2,并升级到asp.net4.5。我们正在使用cookie表单例份验证来防止未经授权访问网站。我们有一些在web.config中列入白名单的Assets和页面(例如:登录页面):在过去的几个月里,我们一直注意到IIS/Asp.net随机地停止遵守白名单并假设所有内容都需要经过身份验证。该服务器上对该站点的所有请求都将被重定向到登录页面,然后该页面会抛出500错误。无法检索任何列入白名单的Assets。当IIS出现问题时,我们可以在事件查看器中看到2个错误。第一个:Exceptiontype

c# : Why is a cast needed from an Enum to an INT when used in a switch statement? ,枚举是整数

谁能告诉我为什么我需要从我的枚举中转换为Intswitch(Convert.ToInt32(uxView.SelectedValue)){case(int)ViewBy.Client:如果我删除强制转换(int),它会失败并提示我必须使用强制转换。这是我的枚举,枚举是整数....有人知道吗?publicenumViewBy{Client,Customer} 最佳答案 在C#中,enum不仅仅是数字。相反,它们是与类型相关联的数字或在上下文中具有名称的数字。要避免在case语句中进行强制转换,您可以在switch中进行强制转换:swi

C#:从 IEnumerable 获取随机值的优雅代码

在Python中,我可以这样做:>>>importrandom>>>ints=[1,2,3]>>>random.choice(ints)3在C#中,我做的第一件事是:varrandgen=newRandom();varints=newint[]{1,2,3};ints[randgen.Next(ints.Length)];但这需要索引,ints的重复也困扰着我。所以,我想到了这个:varrandgen=newRandom();varints=newint[]{1,2,3};ints.OrderBy(x=>randgen.Next()).First();仍然不是很好和高效。是否有更优雅的

c# - 浮点除法返回整数

这个问题在这里已经有了答案:WhydoesintegerdivisioninC#returnanintegerandnotafloat?(8个答案)关闭6年前。我想计算两个float的平均值,但无论输入什么,我都会得到一个整数。我应该怎么做才能使这项工作正常进行?publicclassProgram{publicstaticfloatAverage(inta,intb){return(a+b)/2;}publicstaticvoidMain(string[]args){Console.WriteLine(Average(2,1));}}

整数数组的 C# 哈希码

我有一个内部只是整数数组的类。一旦构造数组永远不会改变。我想预先计算一个好的哈希码,以便可以非常有效地将此类用作字典中的键。数组长度小于30项左右,整数一般在-1000到1000之间。 最佳答案 不是很聪明,但足以满足大多数实际目的:编辑:由于HenkHolterman的评论而更改,谢谢。inthc=array.Length;foreach(intvalinarray){hc=unchecked(hc*314159+val);}如果您需要更复杂的东西,lookhere. 关于整数数组的C

C# - 将 TextBox 绑定(bind)到整数

如何将TextBox绑定(bind)到整数?例如,将单元绑定(bind)到textBox1。publicpartialclassForm1:Form{intunit;publicForm1(){InitializeComponent();}privatevoidForm1_Load(objectsender,EventArgse){textBox1.DataBindings.Add("Text",unit,"???");} 最佳答案 它需要是实例的公共(public)属性;在这种情况下,“this”就足够了:publicintUni

c# - 定义 "custom"整数类型?

我有一个与外部库接口(interface)的程序,除其他外,它有一个打包在更大结构中的无符号12位值。这曾经是8位,所以我们简单地将它编码(marshal)为一个字节。现在它是12位...我可以使用ushort,但这会带来(a)范围检查和(b)编码(marshal)处理的问题。是否有一种简单的方法来实现像这样的受限数字类型,我不必重写每个赋值和比较方法? 最佳答案 试试这个(这个例子展示了一个自定义的Int64类型)publicclassMyCustomInt64:CustomValueType{privateMyCustomInt

c# - 从 RGB 整数转换为十六进制

我拥有的是R:255G:181B:178,我正在使用C#(对于WP8,更具体地说)我想将其转换为十六进制数以用作颜色(以设置WriteableBitmap的像素颜色)。我正在做的是以下内容:inthex=(255但是当我这样做的时候,我只是变得忧郁。知道我做错了什么吗?此外,要撤消此操作,检查RGB值,我将:intr=((byte)(hex>>16));//=0intg=((byte)(hex>>8));//=0intb=((byte)(hex>>0));//=255 最佳答案 尝试以下操作:usingSystem.Drawing;