ㆍoutjoin
< 없는값채우기 예제>
using System;
using System.Linq;
using System.Collections.Generic;
public class table
{
public string date;
public string val;
}
class ex
{
static void Main(string[] args)
{
List<table> tables = new List<table>
{
new table { date = "20220107 00시 05분", val = (0.004).ToString() },
new table { date = "20220107 00시 15분", val = (0.005).ToString() },
new table { date = "20220107 00시 25분", val = (0.006).ToString() },
new table { date = "20220107 00시 35분", val = (0.007).ToString() },
new table { date = "20220107 00시 45분", val = (0.008).ToString() }
};
var query =
from mintue in Enumerable.Range(0, 60).Where(o => o % 5 == 0).Select(o => o.ToString("00"))
join table_date_mm in tables on mintue equals table_date_mm.date.Substring(13, 2) into g
from n in g.DefaultIfEmpty()
select new
{
Date = mintue,
Val = n?.val.ToString() ?? string.Empty
//Val = n?.val.ToString() ?? "없음"
};
foreach (var x in query)
{
Console.WriteLine(x);
}
}
}

<내가한거>
using System;
using System.Linq;
using System.Collections.Generic;
public class table
{
public string date { get; set; }
public double? val { get; set; }
}
class ex
{
static void Main(string[] args)
{
List<table> tables = new List<table>
{
new table { date = "20220107 00시 05분", val = 0.004 },
new table { date = "20220107 00시 15분", val = 0.005 },
new table { date = "20220107 00시 25분", val = 0.006 },
new table { date = "20220107 00시 35분", val = 0.007 },
new table { date = "20220107 00시 45분", val = 0.008 }
};
var query =
from mintue in Enumerable.Range(0, 60).Where(o => o % 5 == 0).Select(o => o.ToString("00"))
join table_date_mm in tables on mintue equals table_date_mm.date.Substring(13, 2) into g
from table_date_mm in g.DefaultIfEmpty(new table { val = null})
select new
{
Date = mintue,
Val = table_date_mm.val
};
foreach (var x in query)
{
Console.WriteLine(x);
}
}
}

'C# > 공부기록' 카테고리의 다른 글
Visual Studio 2022 Setup project 에서 Properties 가 안보일때 접근 하는 방법 (0) | 2024.11.11 |
---|---|
C# ORM Entity Framework Core 사용 기록 (0) | 2024.08.30 |
[C#] Linq / 시간 예제 (0) | 2023.01.14 |
[C#] Linq / index, value (0) | 2023.01.14 |
[C#] 람다식, Func, Action (0) | 2023.01.14 |