English 中文(简体)
操作列表中的元素-c#
原标题:manipulate elements in a list - c#
  • 时间:2011-05-26 16:18:06
  •  标签:
  • c#
  • list

I have a list of strings of the following pattern: "namemiddleName". What is the nicest way to turn into a list in which all the elements are just "name"? (i.e split the string and leave only the "name" part)

Thanks, Li

最佳回答
List<string> originalList = ...
List<string> newList = originalList.Select(s => s.Split( \ )[0]).ToList()
问题回答
List<string> original = ...
List<string> nameOnly = original.ConvertAll(s => s.Substring(0, s.IndexOf( \ )));

如果原始列表的某些元素中可能没有字符,则需要进行额外检查以避免出现异常:

List<string> nameOnly = original.ConvertAll(s => {
                                                     int i = s.IndexOf( \ );
                                                     return (i == -1) 
                                                         ? s
                                                         : s.Substring(0, i);
                                                 });
//your list of strings in format (namemiddleName)
List<string> list;
List<string> newList;

foreach(string item in list)
   newList.Add(item.Substring(0, item.IndexOf("\")));

这将使你的字符串列表的副本变成一个新的,格式像你想要的。

Tokenize "/" and assign the first string to name variable. Or just make loop of all those strings in a list and inside a loop do a loop on a string length which puts chars into variable and exits when reaches "/" and then stores it as a name.

这里有一个不创建新列表的正则表达式解决方案。

for(int i = 0; i < list.count; i++)
{
     list[i] = Regex.Match(List[i],@"^w+").value      
}




相关问题
Anyone feel like passing it forward?

I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...

NSArray s, Primitive types and Boxing Oh My!

I m pretty new to the Objective-C world and I have a long history with .net/C# so naturally I m inclined to use my C# wits. Now here s the question: I feel really inclined to create some type of ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

How to Use Ghostscript DLL to convert PDF to PDF/A

How to user GhostScript DLL to convert PDF to PDF/A. I know I kind of have to call the exported function of gsdll32.dll whose name is gsapi_init_with_args, but how do i pass the right arguments? BTW, ...

Linqy no matchy

Maybe it s something I m doing wrong. I m just learning Linq because I m bored. And so far so good. I made a little program and it basically just outputs all matches (foreach) into a label control. ...

热门标签