如何将不同类型的数组(字符串、整数、字符)作为相同的格式进行操作,例如 C# 中的字符串
本文关键字:字符串 格式 操作 例如 同类型 数组 字符 整数 | 更新日期: 2023-09-27 17:56:32
我有一个对象的集合,每个对象将包含不同类型的数组(string[],int[],char[])甚至不同类型的单个值。
我想将每个数组的值作为单一格式(例如字符串)获取,并将其转换为逗号文本值。
下面是将集合对象操作为"UInt16[]"的代码
UInt16[] arrCapabilities = (UInt16[])(queryObj["Capabilities"]);
foreach (UInt16 arrValue in arrCapabilities)
{
Console.WriteLine("Capabilities: {0}", arrValue);
}
您可以尝试使用以下代码:
IEnumerable array = queryObj["Capabilities"] as IEnumerable;
if(array != null)
{
foreach(var item in array)
{
Console.WriteLine(item.ToString());
}
}
else
{
Console.WriteLine(queryObj["Capabilities"].ToString());
}
可以使用 LINQ 将任何数组转换为 IEnumerable 字符串:
var myStrings = from c in arrCapabilities select c.ToString();
要扩展丹尼尔斯答案并获取您所追求的 csv 字符串:
IEnumerable array = queryObj["Capabilities"] as IEnumerable;
if(array != null)
{
var csvString = String.Join(", ", array.Cast<object>().Select(x => x.ToString()));
Console.WriteLine(csvString);
}
else
{
Console.WriteLine(queryObj["Capabilities"].ToString());
}
这有帮助吗?
void WriteToConsole<T>(IEnumerable<T> items)
{
foreach (var item in items)
Console.WriteLine("Capabilities: " + item);
}