C# 在mvc中从数据库中拆分字符串
我有一门课是这样的:C# 在mvc中从数据库中拆分字符串,c#,split,C#,Split,我有一门课是这样的: public class User { public int ID { get; set; } public string Name { get; set; } public string Module { get; set; } } 对于模块我想在达到一定长度时设置拆分,例如 :Maths/English/Physics/Chemistry,Maths/English/Physics/Chemistry 我想得到这些结果: Maths/Engl
public class User
{
public int ID { get; set; }
public string Name { get; set; }
public string Module { get; set; }
}
对于模块
我想在达到一定长度时设置拆分,例如
:Maths/English/Physics/Chemistry,Maths/English/Physics/Chemistry
我想得到这些结果:
Maths/English/Physics/Chemistry
Maths/English/Physics/Chemistry
我尝试过这种方法,但不起作用:
string input = Module;
string[] result = input.Split(new string[] { " , " }, StringSplitOptions.None);
这可能是使用正则表达式而不是字符串完成的。请尝试此操作
string value = @":Maths/English/Physics/Chemistry/Maths/English/Physics/Chemistry";
// Get a collection of matches.
MatchCollection matches = Regex.Matches(value, @"Maths/English/Physics/Chemistry");
// Use foreach-loop.
foreach (Match match in matches)
{
// DO you jobs for each "Maths/English/Physics/Chemistry"
}
我想你应该把你的8个部分分成几个项目,你可以定义每个项目的长度。下面是一个简单的代码版本
public static void Main(string[] args)
{
var outputs = SplitIntoParts("Maths/English/Physics/Chemistry/Maths/English/Physics/Chemistry", 4);
foreach(var output in outputs)
{
Console.WriteLine(output);
}
}
private static List<string> SplitIntoParts(string input, int itemLength)
{
var result = new List<string>();
var splittedValues = input.Split('/');
for (var i = 0; i < splittedValues.Length; i++)
{
var item = string.Empty;
if (i % itemLength > 0)
{
item = result[result.Count - 1];
}
item += splittedValues[i];
if (i % itemLength < itemLength - 1)
{
item += "/";
}
if (i % itemLength == 0)
{
result.Add(item);
}
else
{
result[result.Count - 1] = item;
}
}
return result;
}
publicstaticvoidmain(字符串[]args)
{
var输出=分为几个部分(“数学/英语/物理/化学/数学/英语/物理/化学”,4);
foreach(输出中的var输出)
{
控制台写入线(输出);
}
}
私有静态列表拆分为部分(字符串输入,int itemLength)
{
var result=新列表();
var splittedValues=input.Split('/');
对于(var i=0;i0)
{
项目=结果[result.Count-1];
}
项目+=分割值[i];
如果(i%itemLength
按照这一思路做一些事情是可行的
string modulesJoined =":Maths/English/Physics/Chemistry,Maths/English/Physics/Chemistry";
string [] res = modulesJoined.Split(',');
string module = string.Join("\n", res);
module = module.TrimStart(':');
请你澄清一下:1)你说它不起作用是什么意思?2) 您需要将结果字符串放在哪里?3) 是否只拆分包含相同子字符串的字符串(如在您的示例中,相同子字符串重复两次)?由于它仍然保持为同一行,任何达到一定长度的子字符串都将拆分为第二行,因此它仍然是一个
字符串,但带有换行符?或者您想要一个字符串[]模块
?这真的不清楚第二行的意思是什么?你们说的是在UI端显示模块数据吗?是的,用新行。我会设法弄清楚,说得更清楚,谢谢