c# ASP.. NET for循环问题

本文关键字:循环 问题 for NET ASP | 更新日期: 2023-09-27 18:07:47

在我的代码后面,我有一个名字列表…(Tracy, Michelle and Tiffany)

,我有一个名为names的字符串,每个名字都被添加到字符串中,但它显示如下(Tracy Michelle Tiffany)

每个名字后面加逗号,最后一个名字前面加and.

这是我的一些代码

    string names = "";
    for(int i=0; i< GroupOfPeople.Count; i++)
    {
         GroupOfPeople nm = (GroupOfPeople) nm.GroupOfPeople[i];
         names += nm.FirstName;                        
    } 

c# ASP.. NET for循环问题

如果您使用的是。net 4.0或更新版本,则可以使用接受IEnumerable<string>String.Join:

var nameList = new List<string>();
for(int i=0; i< GroupOfPeople.Count; i++) {
    GroupOfPeople nm = (GroupOfPeople) nm.GroupOfPeople[i];
    nameList.Add(nm.FirstName);
}
var names = string.join(", ", nameList);

如果没有看到GroupOfPeople的接口,很难说是否有可能在不创建显式列表的情况下做到这一点。如果有一种方法可以使用LINQ从GroupOfPeople中选择所有的名字,请将该表达式插入nameList的最后一行:

var names = string.join(
    ", "
,   GroupOfPeople.Cast<GroupOfPeople>().Select(nm => nm.FirstName)
); //             ^^^^^^^^^^^^^^^^^^^^^^ The above cast may be unnecessary

for(int i=0; i< GroupOfPeople.Count; i++)
        {
            GroupOfPeople nm = (GroupOfPeople) nm.GroupOfPeople[i];
                if(i < GroupOfPeople.Count - 1)
                    names += nm.FirstName + ", ";
                else
                     names += " and " + nm.FirstName;
         }