从数组中拆分数据并提取特定数据
Splitting data from an array and pulling specific data
我认为我必须做的是拆分和提取数据以执行以下操作:
我创建了一个 class,具有以下数组和方法 getContactList。我需要创建一个方法 getFirstNames() 和 return 将地址簿中的所有名字放入测试中的变量 firstNames class 并将它们显示在控制台上。
class ContactList
{
public String[] contactList =
{
"John, Smith, jsmith@nbcc.ca, (506) 555-1234",
"Frank, Sinatra, fsinatra@nbcc.ca, (506) 696-1234",
"Joan, Rivers, jrivers@nbcc.ca, (506) 696-5678",
"Freddy, Mercury, fmercury@nbcc.ca, (506) 653-1234",
"Freddy, Kruger, fkruger@nbcc.ca, (506) 658-1234"
};
public String[] getContactList()
{
return contactList;
}
public String getLastNames()
{
string lastnames = "";
return lastnames;
}
}
class Program
{
static void Main(string[] args)
{
ContactList firstNames = new ContactList();
Console.WriteLine(firstNames.getFirstNames());
Console.WriteLine();
Console.WriteLine("Press any key to exit.");
Console.ReadKey();
}
您的方法并不是最好的方法,但可以实现您想要的...
(假设您想用 , 分隔名称)
public string getFirstNames(){
StringBuilder sb=new StringBuilder();
foreach(var x in contactList){
var tmp=x.Split(',');
sb.Append(tmp[0]);
sb.Append(",");
}
return sb.ToString();
}
最好这样设计:
class ContactList
{
string firstName, lastName, eMail, ContactNo;
//Properties (getters/setters for above attributes/fields
}
class ContactListHandler
{
public List<string> GetFirstNames(string[] contactsText)
{
List<string> stringList = new List<string>();
foreach (string s in contactsText)
{
var x = contactsText.split(',');
stringList.Add(x[0]);
}
return stringList;
}
//and other functions
}
Main()
{
ContactListHandler cHandler = new ContactListHandler();
List<string> contactsString = cHandler.GetFirstNames(//your string variable containing the contacts);
foreach(string s in contactsString)
{
Console.WriteLine(s);
}
}
是的,它增加了代码,但只增加了一次,现在您可以以面向对象的方式对任何字符串等使用它
它的工作我检查了 :) 祝你开发顺利
using System.IO;
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
// Just to hold data
string[] data = new String[]{"John, Smith, jsmith@nbcc.ca, (506) 555-1234","Frank, Sinatra, fsinatra@nbcc.ca, (506) 696-1234","Joan, Rivers, jrivers@nbcc.ca, (506) 696-5678","Freddy, Mercury, fmercury@nbcc.ca, (506) 653-1234","Freddy, Kruger, fkruger@nbcc.ca, (506) 658-1234"};
// Create new contact list object
ContactList contacts = new ContactList(data);
// Call our method
contacts.PrintLastNames();
}
}
public class ContactList
{
// Declare properties
// google C# getter setter
private List<string> cList;
public List<string> CList{
get{ return cList; }
}
// Constructor
public ContactList(string[] _contactList)
{
// When creating new instance, take array of contacts and put into list
this.cList = _contactList.ToList();
}
// This will print out the names
public void PrintLastNames()
{
// Google lambda expression C# for more info on iteration
// With each string in cList, split by comas and use the first element
this.cList.ForEach( x => Console.WriteLine(x.Split(',')[0]));
// Use this for last names
//this.cList.ForEach( x => Console.WriteLine(x.Split(',')[1]));
}
// This will return names in list
public List<string> GetLastNames()
{
// Google List Collection Generic C# for more info
List<string> namesList = new List<string>();
this.cList.ForEach( x => namesList.Add( x.Split(',')[0] ));
return namesList;
}
}
我认为我必须做的是拆分和提取数据以执行以下操作:
我创建了一个 class,具有以下数组和方法 getContactList。我需要创建一个方法 getFirstNames() 和 return 将地址簿中的所有名字放入测试中的变量 firstNames class 并将它们显示在控制台上。
class ContactList
{
public String[] contactList =
{
"John, Smith, jsmith@nbcc.ca, (506) 555-1234",
"Frank, Sinatra, fsinatra@nbcc.ca, (506) 696-1234",
"Joan, Rivers, jrivers@nbcc.ca, (506) 696-5678",
"Freddy, Mercury, fmercury@nbcc.ca, (506) 653-1234",
"Freddy, Kruger, fkruger@nbcc.ca, (506) 658-1234"
};
public String[] getContactList()
{
return contactList;
}
public String getLastNames()
{
string lastnames = "";
return lastnames;
}
}
class Program
{
static void Main(string[] args)
{
ContactList firstNames = new ContactList();
Console.WriteLine(firstNames.getFirstNames());
Console.WriteLine();
Console.WriteLine("Press any key to exit.");
Console.ReadKey();
}
您的方法并不是最好的方法,但可以实现您想要的... (假设您想用 , 分隔名称)
public string getFirstNames(){
StringBuilder sb=new StringBuilder();
foreach(var x in contactList){
var tmp=x.Split(',');
sb.Append(tmp[0]);
sb.Append(",");
}
return sb.ToString();
}
最好这样设计:
class ContactList
{
string firstName, lastName, eMail, ContactNo;
//Properties (getters/setters for above attributes/fields
}
class ContactListHandler
{
public List<string> GetFirstNames(string[] contactsText)
{
List<string> stringList = new List<string>();
foreach (string s in contactsText)
{
var x = contactsText.split(',');
stringList.Add(x[0]);
}
return stringList;
}
//and other functions
}
Main()
{
ContactListHandler cHandler = new ContactListHandler();
List<string> contactsString = cHandler.GetFirstNames(//your string variable containing the contacts);
foreach(string s in contactsString)
{
Console.WriteLine(s);
}
}
是的,它增加了代码,但只增加了一次,现在您可以以面向对象的方式对任何字符串等使用它
它的工作我检查了 :) 祝你开发顺利
using System.IO;
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
// Just to hold data
string[] data = new String[]{"John, Smith, jsmith@nbcc.ca, (506) 555-1234","Frank, Sinatra, fsinatra@nbcc.ca, (506) 696-1234","Joan, Rivers, jrivers@nbcc.ca, (506) 696-5678","Freddy, Mercury, fmercury@nbcc.ca, (506) 653-1234","Freddy, Kruger, fkruger@nbcc.ca, (506) 658-1234"};
// Create new contact list object
ContactList contacts = new ContactList(data);
// Call our method
contacts.PrintLastNames();
}
}
public class ContactList
{
// Declare properties
// google C# getter setter
private List<string> cList;
public List<string> CList{
get{ return cList; }
}
// Constructor
public ContactList(string[] _contactList)
{
// When creating new instance, take array of contacts and put into list
this.cList = _contactList.ToList();
}
// This will print out the names
public void PrintLastNames()
{
// Google lambda expression C# for more info on iteration
// With each string in cList, split by comas and use the first element
this.cList.ForEach( x => Console.WriteLine(x.Split(',')[0]));
// Use this for last names
//this.cList.ForEach( x => Console.WriteLine(x.Split(',')[1]));
}
// This will return names in list
public List<string> GetLastNames()
{
// Google List Collection Generic C# for more info
List<string> namesList = new List<string>();
this.cList.ForEach( x => namesList.Add( x.Split(',')[0] ));
return namesList;
}
}