C# 将TranslateArrayResponse的类型转换为字符串[]
我正在与Microsoft Translator()合作。 特别是C# 将TranslateArrayResponse的类型转换为字符串[],c#,arrays,string,microsoft-translator,C#,Arrays,String,Microsoft Translator,我正在与Microsoft Translator()合作。 特别是TranslateArray()方法,它基本上需要翻译文本的字符串数组,结果是一个包含翻译文本的数组 生成的翻译带有一种类型TranslateArrayResponse[]。 我的代码看起来像这样(为了清晰起见缩短) client.TranslateArray()方法的挑战在于,它只允许每个请求包含10000个字符,最多包含2000个项目。我的sourceTranslate(一个resx文件)很容易包含超过10000个字符,所以为
TranslateArray()
方法,它基本上需要翻译文本的字符串数组,结果是一个包含翻译文本的数组
生成的翻译带有一种类型TranslateArrayResponse[]
。
我的代码看起来像这样(为了清晰起见缩短)
client.TranslateArray()
方法的挑战在于,它只允许每个请求包含10000个字符,最多包含2000个项目。我的sourceTranslate
(一个resx文件)很容易包含超过10000个字符,所以为了避免这个问题,我将请求拆分以适应这些边界
我的问题是如何将值result
复制到字符串[]或类似的字符串中-我需要稍后使用result
(即将结果保存回新的resx文件)
显然像
result+=…
这样的东西是行不通的。有多种方法可以做到这一点
一个简单的方法是在TranslateArrayResponse
值数组上循环时逐步创建一个新字符串-根据,每个值都有一个TranslatedText
类型的string
属性:
StringBuilder sb = new StringBuilder();
foreach (var tar in result) {
sb.Append(tar.TranslatedText);
}
string resultString = sb.ToString();
另一种解决方案是使用LINQ从每个项目中提取翻译文本,然后连接字符串的结果枚举:
string resultString = string.Join("", result.Select(r => r.TranslatedText));
完美-正是我需要的:)
string resultString = string.Join("", result.Select(r => r.TranslatedText));