Kazuki.io

プログラミングやITガジェットなどの備忘録だよ。人の役に立てばいいな。

C# Linq GroupBy Sum

サンプルクラス
Data.cs

public class Data
{
    public int Id { get; set; }
    public string Name { get; set; }
    public DateTime Date { get; set; }
    public int Value { get; set; }
}

テストデータの挿入
Main.cs

using System;
using System.Collections.Generic;

static void Main(string[] args)
{
    var dataList = new List<Data>();
    dataList.Add(new Data() { Id = 1, Name = "A", Date = new DateTime(2018, 1, 1, 18, 33, 0), Value = 90 });
    dataList.Add(new Data() { Id = 1, Name = "B", Date = new DateTime(2018, 1, 2, 19, 2, 0), Value = 2 });
    dataList.Add(new Data() { Id = 1, Name = "C", Date = new DateTime(2018, 1, 3, 2, 48, 0), Value = 54 });
    dataList.Add(new Data() { Id = 2, Name = "A", Date = new DateTime(2019, 1, 21, 18, 9, 0), Value = 33 });
    dataList.Add(new Data() { Id = 2, Name = "B", Date = new DateTime(2019, 2, 1, 12, 1, 0), Value = 88 });
    dataList.Add(new Data() { Id = 2, Name = "B", Date = new DateTime(2019, 2, 5, 14, 15, 0), Value = 65 });
    dataList.Add(new Data() { Id = 2, Name = "D", Date = new DateTime(2019, 2, 11, 13, 40, 0), Value = 9 });
}

これで変数 dataListに7つのオブジェクトが格納された。




一つの要素でGroupByして、SumでValueの合計値を取得する

ここではIdでGroupByして、ValueをSumしてみる。
Main.cs

var data1 = dataList.GroupBy(c => c.Id)
 .Select(c => new { 
    Key = c.Key, 
    ValueSum = c.Sum(x => x.Value) });
foreach (var d in data1)
    Console.WriteLine("Key={0} ValueSum={1}", d.Key, d.ValueSum);

結果
f:id:kazukisaito:20190122194846p:plain

Sumのなかでcとは別にxという変数を使用しているのに注意。




日付の年と月でGroupByして、SumでValueの合計値を取得する

ここではDateのYearとMonthの2つでGroupByして、ValueをSumしてみる。
複合キーのパターン。
Main.cs

var data2 = dataList.GroupBy(c => new {c.Date.Year, c.Date.Month }).Select(c => new { c.Key.Year, c.Key.Month, ValueSum = c.Sum(x => x.Value) });
foreach (var d in data2)
    Console.WriteLine("Key1={0}, Key2={1}, ValueSum={1}", d.Year, d.Month, d.ValueSum);

結果
f:id:kazukisaito:20190122194901p:plain

GroupByのラムダ式内に匿名クラスを返すように書いている。(new {c.Date.Year, c.Date.Month}の部分)
GroupByするキーが複数ある場合はこのように匿名クラスをキーとする。

Google AdSense をはてなブログに表示する。

こんにちは。

先日、アクセス数の少ない私のブログでもGoogle AdSenseの審査が無事通り、広告を貼ることができるようになりました。

今回は、Google AdSenseをこのはてなブログに表示する一連の流れを書きます。

※はてなブログにGoogle AdSenseを表示するには独自ドメインのブログでないとだめだそうです。

 

 

通知のメールには以下の画像が付いていました。

では、さっそく広告を貼ってみようと思い。Google AdSenseのスクリプトコードを得るためにGoogle AdSenseにアクセスしました。

f:id:kazukisaito:20190120095210p:plain

 

 

広告用コードを取得する

左のメニューから広告ユニットを選択し、次に新しい広告ユニットボタンをクリックします。

f:id:kazukisaito:20190120094424p:plain

 

 

次に広告の種類を選択します。まずはテキスト広告とディスプレイ広告を選択します。

f:id:kazukisaito:20190120094453p:plain

 



説明のツアーが2ページ表示されます。次へ進むボタンしか表示されないので、クリックして進みます。

f:id:kazukisaito:20190120094551p:plain

 

 

 

広告ユニットのスタイルを指定できます。

ここでは名前のみ指定し、保存してコード取得ボタンをクリックします。

名前は任意で構いません。

f:id:kazukisaito:20190120094855p:plain

 

 

 

以下の画面が表示されます。広告コードをすべてコピーし、閉じてください。

Google AdSense側の操作はとりあえず、ここまでで良いです。

f:id:kazukisaito:20190120151353p:plain



 

はてなブログに表示する。

取得した広告コードをはてなブログに表示できるようにします。

はてなブログのメニューでデザインを選択します。

f:id:kazukisaito:20190120100104p:plain

 

つぎにヘッダを選択し、HTMLを記述するテキストボックス内に先程コピーした広告コードを貼り付けます。貼り付けた後は、変更を保存するボタンをクリックして保存します。

f:id:kazukisaito:20190120100745p:plain

 

 

その後、自分のブログにアクセスしてみると、ブログヘッダ(記事の前部分)に広告が表示されているのが確認できます。

f:id:kazukisaito:20190120101141p:plain



 

以上で一通りの広告の貼り付け方法がわかりました。

あとは、広告のサイズや表示する場所などを操作する必要があると思いますが、それはおいおい。

 

 

 

閲覧中のサイトのTLSバージョンを確認する

はい

 

ふと「今見ているサイトって暗号化されてるけど、TLSのバージョンっていくつなんだ?」と思い、どこで確認できるか調べてみました。

 

Google Chromeでの利用ですが、F12キーで開発者画面を開き、Securityタブを選択すると下の画面のようにConnection情報としてTLSのバージョンが記載されています。

f:id:kazukisaito:20181031222327p:plain

 

へぇ、ここで確認できるんだ。

 

ちなみにHTTPS化していないサイトでは下のように表示されます。

f:id:kazukisaito:20181031222514p:plain