2013-12-20 20 views
0

修改的数字我有一个变量大奖赛返回5998 7510 8144 9458 10916 13214和这个名单必须改变59,98 75,10 81,44 94,58 109,16 132,14 我怎样才能做到这一点。也就是说,最后的2个位数(右一)每个数字的前面加上,在列表

这是C#代码到目前为止,我已经试过:

XDocument docxx = XDocument.Parse(Session["xmlrs" + z + ""].ToString()); 
     //This now holds the set of all elements named field 

     try 
     { 
      XNamespace foobar = "http://www.april-technologies.com"; 
      var prix = docxx.Descendants(foobar + "CotisationMensuelle").Select(x => new { CotisationMensuelle =(string)x}).ToList(); 

      rpMyRepeater1.DataSource = prix; 

      rpMyRepeater1.DataBind(); 
     } 
     catch(Exception ex) {} 

和C#代码是:

<asp:Repeater ID="rpMyRepeater1" ItemType="" runat="server"> 
     <ItemTemplate> 

      <%# DataBinder.Eval(Container.DataItem, "CotisationMensuelle").ToString() %> 
      <br /> 

     </ItemTemplate> 
    </asp:Repeater> 
+0

在这一点在此代码是你真正尝试添加的号码之间的逗号? –

+0

最后两位数字(右起) – user3030806

回答

2

尝试以下操作:

XNamespace foobar = "http://www.april-technologies.com"; 
var prix = docxx.Descendants(foobar + "CotisationMensuelle").Select(x => new { CotisationMensuelle =(string)x}).ToList(); 
var newPrix = new List<string>(); 
foreach (var s in prix) 
{ 
    var s1 = s.CotisationMensuelle.Substring(0, s.CotisationMensuelle.Length - 2); 
    var s2 = s.CotisationMensuelle.Substring(s.CotisationMensuelle.Length - 2); 

    //add a comma before the last 2 digits (from right) 

    var s_total = s1 +","+ s2; 

    newPrix.Add(s_total); 
} 
rpMyRepeater1.DataSource = newPrix.Select(x => new {CotisationMensuelle = x}).ToList(); 
rpMyRepeater1.DataBind(); 
+0

我得到erreur消息:''AnonymousType#1'没有包含'Length'的定义,也没有接受'AnonymousType#1'类型的第一个参数的扩展方法'Length'可以找到(是否缺少using指令或程序集引用?)' – user3030806

+1

@ user3030806更新代码尝试一下 – har07

+0

我已经加入此'VAR s_total = S1 +“” + S2;'现在我得到** 59 ,98个75,10 81,44 94,58 109,16 132,14 **谢谢:) – user3030806

4

不是很清楚你的要求,你的代码示例无关列表中你给作为eample。如果您需要从末尾加上一个逗号两个字母,试试这个,

string val = "7958"; 
string newVal = val.Insert(val.Length-2,","); 
Console.WriteLine(newVal); 
1

你可以使用DataBound事件,样品,在你的页面:在你的代码behine

<asp:Repeater ID="rpMyRepeater1" ItemType="" runat="server" OnItemDataBound="rpMyRepeater1_ItemDataBound"> 
    <ItemTemplate> 
     <asp:Literal ID="ltl" runat="server"></asp:Literal> 
    </ItemTemplate> 
</asp:Repeater> 

int i = 0; 
protected void rpMyRepeater1_ItemDataBound(object Sender, RepeaterItemEventArgs e) 
{ 
    // if the item on repeater is a item of data 
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 
    { 
     // get value 
     string value = DataBinder.Eval(e.Item.DataItem, "CotisationMensuelle").ToString(); 

     // find literal 
     Literal ltl = (Literal)e.Item.FindControl("ltl"); 

     // check if i < 2 
     if (i < 2) 
     { 
      // write value 
      ltl.Text = value; 
      //increase i 
      i++; 
     } 
     else 
     { 
      // write value and <br/> 
      ltl.Text = string.Format("{0}<br />", value); 

      // zero i 
      i = 0; 
     } 
    } 
} 
1

怎么样:

 string data = "5998 7510 8144 9458 10916 13214"; 

     string newValue = string.Join(" ", 
        from s in data.Split(' ') 
        select (double.Parse(s)/100).ToString("0.00")); 
     //59,98 75,10 81,44 94,58 109,16 132,14