我是編程新手,我想知道是否有可能將3個不同的表的索引連接成一個查詢結果。或者,如果使用 LINQ 連接不是一種選擇,我是否可以創建一個新的串列,其中包括 3 個串列的資料。
(Ps. 串列的內容將由用戶輸入,而且專案的數量在不同的運行中可能是不同的,但串列中的專案數量將始終是相同的)
這是3個串列。
這是3個串列:
List<string> SelfStudyModuleName = new List<string> ()。
public List<double> SelfStudySesionHours = new List<double>()。
public List< DateTime> SelfStudySesiondate = new List< DateTime> ();
每個串列的樣本資料:
SelfStudyModuleName.Add("Prog"/span>)。
SelfStudyModuleName.Add("Cloud")。
SelfStudyModuleName.Add("資料庫")。
SelfStudyModuleName.Add("Geo")。
SelfStudySesionHours.Add(2)。
SelfStudySesionHours.Add(5)。
SelfStudySesionHours.Add(3)。
SelfStudySesionHours.Add(6)。
SelfStudySesiondate[0]=2021/12/01。
SelfStudySesiondate[1]=2021/12/02;
SelfStudySesiondate[2]=2021/12/03;
SelfStudySesiondate[3]=2021/12/04。
預期結果的例子:
2021/12/01 Prog 2
2021/12/02 Cloud 5
2021/12/03 DataBase 3
2021/12/04 Geo 6
uj5u.com熱心網友回復:
如果你不想做另一個類,你可以這樣做。否則請看@Serge的回答
var SelfStudyModuleName = new List<string> ()。
var SelfStudySesionHours = new List<double>()。
var SelfStudySesiondate = new List<DateTime> ();
SelfStudyModuleName.Add("Prog"/span>)。
SelfStudyModuleName.Add("Cloud")。
SelfStudyModuleName.Add("資料庫")。
SelfStudyModuleName.Add("Geo")。
SelfStudySesionHours.Add(2)。
SelfStudySesionHours.Add(5)。
SelfStudySesionHours.Add(3)。
SelfStudySesionHours.Add(6)。
SelfStudySesiondate[0] = new DateTime(2021, 12, 1)。
SelfStudySesiondate[1] = new DateTime(2021, 12, 2)。
SelfStudySesiondate[2] = new DateTime(2021, 12, 3);
SelfStudySesiondate[3] = new DateTime(2021, 12, 4)。
var combined = new List<(string Name, double Hours, DateTime Date)>()。
for (int i = 0; i < SelfStudyModuleName.Count; i )
{
combined[i] = ( Name: SelfStudyModuleName[i], Hours: SelfStudySesionHours[i], Date: SelfStudySesiondate[i] )。)
}
uj5u.com熱心網友回復:
一個元組<string,int,DateTime>可能也有幫助。 如果你想避免使用類,就用這個來代替。 var result = new tuple<string,int,DateTime>();
for(var i = 0; i < SelfStudyModuleName.Count; i )
{
result.Add(new SelfStudy
{
SelfStudyModuleName[i],SelfStudySesionHours[i],SelfStudySesiondate[i)
});
}
}
uj5u.com熱心網友回復:
試試這個
var result = new List< SelfStudy> ();
for (var i = 0; i < SelfStudyModuleName.Count; i )
{
result.Add(new SelfStudy
{
SelfStudyModuleName = SelfStudyModuleName[i],
SelfStudySesionHours = SelfStudySesionHours[i],
SelfStudySesiondate = SelfStudySesiondate[i].
});
}
}
類
public class SelfStudy
{
public DateTime SelfStudySesiondate { get; set; }
public string SelfStudyModuleName { get; set; }
public double SelfStudySesionHours { get; set; }
并為你的init添加SelfStudySesiondate0
。public string[] SelfStudySesiondate0 = new string[4] 。
SelfStudySesiondate0[0] = "2021 / 12 / 01" ;
SelfStudySesiondate0[1] = "2021 / 12 / 02";
SelfStudySesiondate0[2] = "2021 / 12 / 03";
SelfStudySesiondate0[3] = "2021 / 12 / 04";
SelfStudySesiondate=SelfStudySesiondate0.Select(i=> Convert.ToDateTime( i)).ToList()。
uj5u.com熱心網友回復:
LINQ的Zip運算子可能就是你要找的東西:
var results = SelfStudyModuleName.Zip(SelfStudySesionHours, (moduleName, sessionHours) => new { moduleName, sessionHours })
.Zip(SelfStudySesiondate, (e, date) => new { e.moduleName, e.sessionHours, date})。)
盡管如此,如果你有能力對來源進行索引(就像你可以用List/Array一樣),你可以這樣做:
var results2 = SelfStudyModuleName
.Select((moduleName, i) => new {
模塊名稱。
sessionHours = SelfStudySesionHours[i],
日期 = SelfStudySesiondate[i].
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/325730.html
標籤:

