[英]convert the strings in my list to a list c#
我對此很陌生,我已經在統一中做了一點 C#,但從來沒有真正在 VS 中。
我有一個大致如下的 txt 文件:
星期一;8;服務器 1、服務器 2、服務器 3
星期二;9;server3,server4
星期三;8;服務器 1、服務器 2、服務器 4
我將其分為 3 個列表,一個與天(星期一)...一個與小時(8)...和一個與服務器(服務器 1、服務器 2、服務器 3),但我想將此服務器字符串轉換為獨特的列表,
例如,我想要一個 list1 包含周一的所有服務器(server1、server2、server3),一個 list2 包含周二的所有服務器(server3、server4)。
這些服務器名稱用逗號分隔,我想將每個字符串拆分為一個唯一列表
我知道我不是很清楚,請詢問任何規格
List<string> plages_horaires_ouverture = File.ReadAllLines(@"file.txt").ToList();
foreach (var fileLine in plages_horaires_ouverture)
{
var splitLignes = fileLine.Split(new[] { ";" }, StringSplitOptions.None);
listeJoursOuverture.Add(splitLignes[0]);
listeHeuresOuverture.Add(splitLignes[1]);
listeServeursOuverture.Add(splitLignes[2]);
}
此代碼將 txt 文件拆分為 3 個包含字符串的單獨列表,現在我想將列表“listeServeursOuverture”(對不起法國名稱)的每個元素(字符串)轉換為唯一列表。 此列表中的每個元素都類似於“server1,server2,server4”或“server2,server3”,並用逗號分隔
有任何想法嗎? 我嘗試了很多東西,但都沒有奏效,這個問題當然很愚蠢,對此我很抱歉
雷諾
使用List.AddRange() :
List<String> servers = new List<String>();
servers.AddRange(splitLignes[2].Split(new[] { "," }, StringSplitOptions.None));
我沒有將您的數據分散到不同的列表中,而是有一個列表(或者至少是某種 DataStructure。您以后可能會發現字典很有用,也許)。
在那個列表中,我會有一個 Model 類的實例,例如這個:
public class MyModel
{
public string Day {get; set;}
public int Hour {get; set;}
public List<string> Servers {get; set;} = new List<string>();
}
然后,如果我正確閱讀了問題,您可以根據需要查找服務器列表。
填充可能是這樣的:
foreach (var fileLine in plages_horaires_ouverture)
{
var splitLignes = fileLine.Split(new[] { ";" }, StringSplitOptions.None);
var model = new MyModel{
Day = splitLignes[0],
Hour = int.Parse(splitLignes[1].Trim())
};
model.Servers.AddRange(splitLignes[2].Split(new[] { "," }, StringSplitOptions.None));
listeOverture.Add(model);
// don't need these anymore.
// listeJoursOuverture.Add(splitLignes[0]);
// listeHeuresOuverture.Add(splitLignes[1]);
// listeServeursOuverture.Add(splitLignes[2]);
}
我會在這里使用字典:
List<string> plages_horaires_ouverture = File.ReadAllLines(@"file.txt").ToList();
Dictionary<KeyValuePair<string, string>,List<string>> servers = new Dictionary<KeyValuePair<string, string>,List<string>>
foreach (var fileLine in plages_horaires_ouverture)
{
var splitLignes = fileLine.Split(new[] { ";" }, StringSplitOptions.None);
KeyValuePair<string, string> key = new KeyValuePair<string, string>(splitLignes[0], splitLignes[1]);
List<string> serversForDay = splitLignes[2].Split(new[] { "," }, StringSplitOptions.None);
servers.Add(key, serversForDay);
}
您可以根據需要編輯名稱和類型。 創建一個類對象以根據需要對數據進行排序,然后創建一個返回該類列表的方法。 當您稍后需要處理代碼時,這對您來說更清楚。
public List<DataModel> GetListFromData()
{
List<string> plages_horaires_ouverture = File.ReadAllLines( @"file.txt" ).ToList();
List<DataModel> list = new List<Dd>();
foreach ( var fileLine in plages_horaires_ouverture )
{
var splitLignes = fileLine.Split( ";" , StringSplitOptions.None );
List<string> d = splitLignes[0].Split( "," ).ToList();
List<string> h =splitLignes[1].Split( "," ).ToList();
List<string> s =splitLignes[2].Split( "," ).ToList();
list.Add( new DataModel( d , h[0] , s ) );
}
return list;
}
class DataModel
{
public DataModel( List<string> days,string hour , List<string> servers )
{
Hour = hour;
Days = days;
Servers = servers;
}
public string Hour { get; set; }
public List<string> Days { get; set; }
public List<string> Servers { get; set; }
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.