2013-01-07 250 views
1

我有这样的代码:分割字符串

public class TrainingModuleProgressStateDataModelResults 
{ 
    public IEnumerable<DataModels.Training.TrainingModuleProgressStateDataModel> TrainingModuleProgressStates { get; set; } 
} 

public class TrainingModuleProgressStateDataModel 
{ 
    public IEnumerable<UserTrainingPointsDataModel> UserTrainingPoints { get; set; } 
} 

我需要分割该成:在我的仓库我从数据库中获取回RawPoints

public class UserTrainingPointsDataModel 
{ 
    public virtual int InteractionType { get; set; } 
    public virtual int Points { get; set; } 
    public virtual string Name { get; set; } 
} 

China Incentive Program,50,6,1|India - Q2 Incentive ,50,6,4|China - Q2 Incentive,50,6,5|India Incentive Program,100,8,3|India - Q2 Incentive ,100,8,4 

每套都是由pipe character隔开,那么50 = the points,6就是互动类型和1是trainingmoduleid(我不需要那个拔出了),并将其命名为好,名字:)

string RawPoints = row["RawPoints"].ToString(); 
foreach (var RawPoint in RawPoints) 
{ 
    UserTrainingPointsDataModel.Name = RawPoints.Name;??? 
} 
+0

你可能想解释RawPoints更详细一些。是'|'个人数据点的分隔符,什么是“中国激励计划”,数字是什么等等? – prthrokz

+0

我编辑了我的OP :) –

回答

1

您可以使用String.Split象下面这样:

string rawInput = "China Incentive Program,50,6,1|India - Q2 Incentive ,50,6,4|China -  Q2 Incentive,50,6,5|India Incentive Program,100,8,3|India - Q2 Incentive ,100,8,4"; 
string[] rawPoints = rawInput.Split(new char[]{'|'}); 

List<UserTrainingPointsDataModel> points = new List<UserTrainingPointsDataModel>(); 

foreach(string rawPoint in rawPoints) 
{ 
    string[] enrty = rawPoints.Split(new char[]{','}); 
    var point = new UserTrainingPointDataModel(); 
    point.Name = entry[0]; 
    point.Points = entry[1]; 
    point.InteractionType = entry[2]; 

    points.Add(point); 
}