Tag: 类型转换

C#中最快的方法是从文件中读取字节块并转换为float

转换/转换字节数组的C#leanguage需要一个快速的方法,将2字节的一个short(int16)值编码为float表示,尽可能快。 性能瓶颈是方法: samples[sample] = (float)binraryReader.readInt16(); (巨大的IO调用,所以我不得不转换为块读取) 基本上我有包含声音样本块(~100-600 mb)类型的短文件,然后,因为我只能阻止读取字节集,我需要从每对字节构造短路然后将该短路转换为浮点数表示我需要将样本存储为浮点数。 我当前的代码看起来像这样(比上面的方法提高2倍的性能,但仍然很长): float[] samples = new float[_samplesPerSplit]; byte[] data = new byte[_samplesPerSplit * 2]; for (int c = 0; c < numberOfChunks; c += 1) { br.Read(data, 0, _samplesPerSplit * 2); fixed (byte* bytePtr = data) { fixed (float* floatPtr = samples) { byte* rPos = bytePtr; float* […]

将可空数字转换为字符串

我想将可空数字转换为保持空值的字符串。 这就是我正在做的事情: int? i = null; string s = i == null ? null : i.ToString(); 有什么更短的东西吗?

处理抽象类和类型参数固有的类

我有一个基本抽象类及其抽象类型参数: public abstract class Database where T : DatabaseItem, new() { protected List _items = new List (); protected virtual void Read (string[] cols) { T item = new T (); … } public abstract class DatabaseItem { … } 然后我有许多固有的儿童课程: public class ShopDatabase : Database {} public class ShopItem : DatabaseItem {} public class […]

使用隐式/显式转换而不是构造函数的原因是什么?

一个例子是: XNamespace ns = “my namespace” 为什么不?: XNamespace ns = new XNamespace ( “my namespace” ) 使用隐式/显式转换而不是构造函数背后的想法是什么? 方便? 有这方面的指导方针吗?

使用ToArray()将列表转换为数组

我创建了一个名为listItem的类和以下列表: List myList = new List(); 在我的代码中的某个时刻,我想将其转换为数组,从而使用: listItem[] myArray = myList.ToArray(); 不幸的是,这不起作用,我收到此错误消息: Cannot convert […] listItem[] to […] List 我试图解决这个问题,但非常失败…… 提前致谢。 编辑:我的坏,我写的第一个代码行确实是错误的! 实际上,上面的所有代码都运行良好。 我的错误是由于我的function: List myFunction() 返回myArray,因此转换问题……现在已经修复了。 🙂 谢谢大家的答案。

为什么不将null评估为false?

在条件句中null为什么不评估为false的原因是什么? 我首先想到的是分配以避免使用=而不是==的错误,但编译器很容易不允许这样做。 if (someClass = someValue) // cannot convert someClass to bool. Ok, nice if (someClass) // Cannot convert someClass to bool. Why? if (someClass != null) // More readable? 我认为假设null意味着false是相当合理的。 还有其他语言也使用它,因为它没有我的错误。 编辑:我当然是指参考类型。 Daniel Earwicker关于赋值错误的一个很好的评论…这个编译没有警告,因为它评估为bool : bool bool1 = false, bool2 = true; if (bool1 = bool2) { // oops… false == true, and bool1 […]

将System.Drawing.Image转换为System.Windows.Controls.Image?

在C#中有没有办法进行这种转换并返回? 我有一个WPF应用程序,它有一个Image控件。 我正在尝试将该控件中的图像保存到SQL数据库。 在我的实体模型中,我数据库中图片列的数据类型是byte[] 。 所以我找到了一个将System.Drawing.Image转换为byte[]并返回的方法。 但我还没有找到一个从System.Windows.Controls.Image转换为byte[] 。 所以这就是我现在需要进行上述转换的原因。

将byte 转换为sbyte

我试图将一个数组从byte[]转换为sbyte[] 。 这是我的示例数组: byte[] unsigned = { 0x00, 0xFF, 0x1F, 0x8F, 0x80 }; 我已经尝试过了: sbyte[] signed = (sbyte[])((Array)unsigned); 但它不起作用。 此操作后数组中没有值。 有人有更好的主意吗?

如何动态调用TryParse?

有没有办法动态调用TryParse ? 一些: public static bool TryParse(string toConvert, out T result) 当然,人们可以使用Typeonverters。 但是,无效的转换会导致exception,我想摆脱这种情况。

C#将字符转换为字节(hex表示)

这似乎是一个容易的问题,但我无法弄清楚。 我需要转换此字符<字节(hex表示),但如果我使用 byte b = Convert.ToByte(‘<'); 我得到60 (十进制表示)而不是3c 。