草庐IT

c# - LINQ 将列交换为行

是否有一个奇特的LINQ表达式可以让我以更简单的方式执行以下操作。我有一个List>,假设列表是二维矩阵中的列,我想将列列表交换为行列表。我有以下明显的解决方案:intcolumns=5;varvalues;//assumeinitialisedasList>()varlistOfRows=newList>();for(inti=0;inewRow=newList();foreach(Listvalueinvalues){newRow.Add(value[i]);}listOfRows.Add(newRow);} 最佳答案 您可以非

c# - 将 long 转换为 double 的精度损失有多大?

我在stackoverflow上的不同帖子和C#文档中读到,将long(或任何其他表示数字的数据类型)转换为double会失去精度。由于float的表示,这一点非常明显。我的问题是,如果将较大的数字转换为double,精度损失有多大?我是否必须期望差异大于+/-X?我想知道这一点的原因是我必须处理一个long的连续计数器。这个值被我的应用程序读取为string,需要转换并且必须除以例如10或其他一些小数字,然后进一步处理。decimal是否更适合这项任务? 最佳答案 convertinglong(oranyotherdatatype

c# - 在运行内部代码之前,在锁之前和锁内设置 "double check"是否可以?

在处理线程安全时,我发现自己总是在执行锁block中的代码之前“仔细检查”,我想知道自己是否做对了。考虑以下三种做同样事情的方法:示例1:privatestaticSomeCollectionMyCollection;privatestaticObjectlocker;privatevoidDoSomething(stringkey){if(MyCollection[key]==null){lock(locker){MyCollection[key]=DoSomethingExpensive();}}DoSomethingWithResult(MyCollection[key]);}示

c# - 计算点击点的角度

我正在制作一个WPF控件(旋钮)。我正在尝试根据圆内的鼠标单击位置计算出计算角度(0到360)的数学方法。例如,如果我单击图像上X、Y所在的位置,我将得到一个点X、Y。我也有中心点,但不知道如何获得角度。我的代码如下:internaldoubleGetAngleFromPoint(Pointpoint,PointcenterPoint){doubledy=(point.Y-centerPoint.Y);doubledx=(point.X-centerPoint.X);doubletheta=Math.Atan2(dy,dx);doubleangle=(theta*180)/Math.P

c# - 如何在 Windows Phone 8 中获取捕获图像或存储图像的地理标记详细信息

我想从图像中获取有关地理位置的信息,如下图所示voidcam_Completed(objectsender,PhotoResulte){if(e.TaskResult==TaskResult.OK){ImagecameraImage=newImage();BitmapImagebImage=newBitmapImage();bImage.SetSource(e.ChosenPhoto);cameraImage.Source=bImage;e.ChosenPhoto.Position=0;ExifReaderreader=newExifReader(e.ChosenPhoto);doub

C# doubles 显示逗号​​而不是句点

我和这个帖子里的人几乎有同样的问题:ConvertFloatthathasperiodinsteadofcomma?所以我的doublex=234.4;stringy=x.ToString();我得到y=="234,4";更糟糕的是......Double.Parse("234.4")抛出异常。在我被要求使用句点而不是逗号之前,我已经写了很多代码,所以我更愿意有一些方法可以在全局级别更改我的CultureInfo。项目中是否有一些我可以做的设置?我试过:Application.CurrentCulture=CultureInfo.CreateSpecificCulture("en-US

c# - 为什么此方法返回 double.PositiveInfinity 而不是 DivideByZeroException?

我在VS2015C#交互中运行了以下代码片段,得到了一些非常奇怪的行为。>doubledivide(doublea,doubleb).{.try.{.returna/b;.}.catch(DivideByZeroExceptionexception).{.thrownewArgumentException("Argumentbmustbenonzero.",exception);.}.}>divide(3,0)Infinity>3/0(1,1):errorCS0020:Divisionbyconstantzero>varb=0;>3/bAttemptedtodividebyzero.>

c# - 计算给定距离、方位、起点的端点

我正在尝试根据起点纬度/经度、方位角和距离找到目的地点。下面这个网站的计算器给出了我想要的结果。http://www.movable-type.co.uk/scripts/latlong.html当我尝试通过代码实现相同的功能时,我没有得到正确的结果。下面是我的代码-privateGLatLngpointRadialDistance(doublelat1,doublelon1,doubleradianBearing,doubleradialDistance){doublerEarth=6371.01;lat1=DegreeToRadian(lat1);lon1=DegreeToRadi

c# - 如何将 double 格式化为字符串并仅在必要时显示小数位?

我有这样的代码:lblFranshizShowInvwNoskhehEdit.Text=string.Format("{0:n}",(double)(int.Parse(drDarman["FranshizDarsad"].ToString())*Convert.ToInt64(RadNumerictxtPayInvwNoskhehEdit.Text))/100);但是{0:n0}字符串格式强制标签的文本没有小数位,而{0:n}字符串格式强制标签的文本有2个小数位数字(默认)。在我的场景中,我只需要必要时的小数位/不四舍五入/我该怎么做? 最佳答案

C# volatile double

因为只有引用类型和一些基元(包括float,但不包括double,我不确定原因,我很高兴听到原因)可以声明为volatile,如果我在类中包装double然后将其声明为volatile(如下所示),double属性是否会像任何其他volatile一样是“读写”线程安全的,还是我仍然应该考虑锁定?publicclassMyThreadedClass{volatileVolatileDoublevoldub;}publicclassVolatileDouble{publicdoubleDouble{get;set;}} 最佳答案 dou