C# string 往结构体里复制
时间: 2024-11-27 15:17:16 浏览: 15
在C#中,你可以使用结构体(Struct)并配合构造函数来实现从字符串向结构体的数据复制。这里有一个简单的例子说明如何做到这一点:
首先,定义一个包含`DeviceName`字段的结构体,假设它是一个固定格式的设备名称:
```csharp
public struct DeviceInfo
{
public string DeviceName;
}
```
然后,创建一个辅助扩展方法`GetString()`,用于根据特定格式从字符数组中提取字符串值,并设置到结构体的`DeviceName`字段:
```csharp
public static void SetString(this DeviceInfo device, char[] cc, bool isTrimEnd)
{
if (isTrimEnd)
cc = cc.TrimEnd(); // 去除结尾空格
int index = cc.Length - 1; // 根据固定格式确定起始位置
device.DeviceName = new string(cc, index, cc.Length - index);
}
// 使用示例
string inputStr = "Device Name"; // 假设输入的字符串格式已知
char[] charArray = inputStr.ToCharArray();
DeviceInfo s = new DeviceInfo();
s.SetString(charArray, true); // 第二个参数表示是否要修剪结尾空格
Console.WriteLine("Name: " + s.DeviceName); // 输出:Name: Device Name
```
在这个例子中,`GetString()`方法接收一个字符数组和一个布尔值,如果`isTrimEnd`为真,则会去掉字符数组末尾的空白。然后,根据知道的格式(这里是整个数组作为名称),设置结构体的`DeviceName`字段。
阅读全文