小弟近期轉學C#
遇到一些問題
這次是有關於List的問題
class Form1:Form
{
List<CSV_Info> List_CSV = new List<CSV_Info>(); //宣告CSV資訊清單
main()
{
DirectoryInfo DirI_In = new DirectoryInfo(Text_In_Path.Text); //輸入目錄資料
DirectoryInfo[] DirI_Mian_Dir = DirI_In.GetDirectories(); //取得主目錄的File陣列
foreach (DirectoryInfo DirI_Sub_Dir in DirI_Mian_Dir)
{
if (DirI_Sub_Dir.Exists) //如果這是目錄
{
List_CSV.Add( new CSV_Info()
{ ID = List_ID,
Useful = true,
Name = DirI_Sub_Dir.Name,
Tag = new List_Tag<TAG_Info>
}
);
}
}
}
}
public class TAG_Info
{
public int ID; //這個Tag得唯一序號(之後可能也會用於放置位置)
public bool Useful; //這個Tag有用
public string Name; //這個Tag的名
}
public class CSV_Info
{
public int ID; //這個CSV得唯一序號(之後可能也會用於製作順序)
public bool Useful; //這個CSV有用
public string Name; //這個CSV的名
public TAG_Info Tag;//這個CSV擁有的Tag
}
以上程序在Tag = new List_Tag<TAG_Info>這句會出現紅線
我預期會在那邊建立一個名為 List_Tag的List (架構是TAG_Info)
可是會紅線,不知道要怎麼解決
OS:光是開始使用就好難了@@,後續估計會針對這東西問不少問題
TAG_Info 是 TAG_Info
List 是 List
你把兩者弄混了
以下寫出兩者的比較
提供參考
順便提醒
有提問題就記得要去選最佳解答
using System;
using System.Collections.Generic;
public class Program
{
public static void Main()
{
Console.WriteLine("Hello World");
List<CSV_Info> List_CSV = new List<CSV_Info>(); //宣告CSV資訊清單
List_CSV.Add( new CSV_Info()
{ ID = 100,
Useful = true,
Name = "subdirectory",
Tag = new TAG_Info() {
ID = 101,
Useful = true,
Name = "tag"
},
List_Tag = new List<TAG_Info>() {}
}
);
}
}
public class TAG_Info
{
public int ID;
public bool Useful;
public string Name;
}
public class CSV_Info
{
public int ID;
public bool Useful;
public string Name;
public TAG_Info Tag;//這只是「一個」TAG_Info
public List<TAG_Info> List_Tag;//這是個 List,內容型態是 TAG_Info
}
少了構建式
public class CSV_Info
{
public int ID; //這個CSV得唯一序號(之後可能也會用於製作順序)
public bool Useful; //這個CSV有用
public string Name; //這個CSV的名
public List<TAG_Info> Tag;//這個CSV擁有的Tag
public CSV_Info(){
Tag = new List<TAG_Info>();
}
}
拍謝,那個命名有點頭痛,隨手改了一下
using System;
using System.Collections.Generic;
using System.IO;
public class Program
{
public static void Main()
{
var path = string.Empty;
//宣告CSV資訊清單
var csvInfos = new List<CsvInfo>();
//輸入目錄資料
var dirInfo = new DirectoryInfo(path);
// 取得主目錄的File陣列(X) => 這個是取得現在目錄底下的子目錄
// 原始說明 => Returns the subdirectories of the current directory.
var subDirectories = dirInfo.GetDirectories();
for (int i = 0; i < subDirectories.Length; i++)
{
//如果這是目錄(X) => 如果這個目錄存在的話
if (subDirectories[i].Exists)
{
csvInfos.Add(new CsvInfo()
{
ID = i + 1, // ID自己看要怎麼放
Useful = true,
Name = subDirectories[i].Name,
Tags = new List<TagInfo>
{
new TagInfo(),
new TagInfo(),
new TagInfo()
}
});
}
}
Console.ReadLine();
}
}
public class TagInfo
{
public int ID; //這個Tag得唯一序號(之後可能也會用於放置位置)
public bool Useful; //這個Tag有用
public string Name; //這個Tag的名
}
public class CsvInfo
{
public int ID; //這個CSV得唯一序號(之後可能也會用於製作順序)
public bool Useful; //這個CSV有用
public string Name; //這個CSV的名
public List<TagInfo> Tags;//這個CSV擁有的Tag
public CsvInfo()
{
Tags = new List<TagInfo>();
}
}