Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从Linq中选择子字符串。重复_C#_Linq_Select_Repeat - Fatal编程技术网

C# 从Linq中选择子字符串。重复

C# 从Linq中选择子字符串。重复,c#,linq,select,repeat,C#,Linq,Select,Repeat,我有一个很长的字符串,在c中它看起来像: String currentStrings = "\\u0000\\u0001\\u0002\\u0003\\u0004"..."\\uFFFF"; //... means repeating 我需要得到每个子字符串的十六进制,例如: String newString = "00000001000200030004"..."FFFF"; 我叫林克: var newString = String.Join("", Enumerable.Repeat(

我有一个很长的字符串,在c中它看起来像:

String currentStrings = "\\u0000\\u0001\\u0002\\u0003\\u0004"..."\\uFFFF";  //... means repeating
我需要得到每个子字符串的十六进制,例如:

String newString = "00000001000200030004"..."FFFF";
我叫林克:

var newString = String.Join("", Enumerable.Repeat(currentStrings, 16).Select(s => s.Substring(2, 4)));
但它返回00000000000000000000000…0000

我知道,原因是-它在select中为2,但我不知道如何获取当前重复子字符串中的起始位置。

您可以在\u上拆分并使用string.Concat将它们连接起来:

string currentStrings = "\\u0000\\u0001\\u0002\\u0003\\u0004\\uFFFF";
var result = string.Concat(currentStrings.Split(new[] { "\\u" }, 
                                              StringSplitOptions.RemoveEmptyEntries)); 

// output
00000001000200030004FFFF
编辑:要获取字符,请执行以下操作:


在position:2,8,…,6*N-4处需要子字符串,其中N是字符串中的许多unicode实体

嗯,在林克:

var N = currentStrings.Length / 6; // each entity has 6 characters long
var substrings = Enumerable.Range(1, N)
                           .Select(n => 6 + n - 4)
                           .Select(n => currentStrings.Substring(n, 4));

var result = string.Join("", substrings);

你的主要目标是什么?你想要实现什么?非常感谢。但我还必须创建每个子字符串的字符。在林克我知道该怎么做,但那里。。。也许你做得很快?charConvert.toint32子字符串@用户3041948您应该将其添加到您的问题中。我们无法猜测您的实际需求是什么。我知道,但我无法想象没有Linq我们能做到这一点。
var N = currentStrings.Length / 6; // each entity has 6 characters long
var substrings = Enumerable.Range(1, N)
                           .Select(n => 6 + n - 4)
                           .Select(n => currentStrings.Substring(n, 4));

var result = string.Join("", substrings);