ふらっと C#,C♯,C#(初心者用) Part135

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 8b75-uWnk)
垢版 |
2018/02/04(日) 22:02:28.59ID:FbKpa1HN0
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ
ふらっと C#,C♯,C#(初心者用) Part134
http://mevius.5ch.net/test/read.cgi/tech/1511951038/
■関連スレ
C#, C♯, C#相談室 Part95
http://mevius.5ch.net/test/read.cgi/tech/1508180530/
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/

■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/

■情報源
https://msdn.microsoft.com/ja-jp/library/gg145045.aspx
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
76愛恥人
垢版 |
2018/02/05(月) 20:23:04.21
devとstrdtをマージしたものにForEach
2018/02/05(月) 22:13:35.29ID:XPnhCx0B0
正規表現を使って文字列から、○○月を除くコードを教えてください。
○には、1から12までが入ります。
78愛恥人
垢版 |
2018/02/05(月) 22:32:29.56
using System.Text.RegularExpressions;

var text = "dejdo8月dksk12月diwk";
text = Regex.Replace(text, @"\d+月", "");
2018/02/05(月) 23:26:17.82ID:ubowXTd5a
123456789月火水木金土
80愛恥人
垢版 |
2018/02/05(月) 23:54:36.42
using System.Text.RegularExpressions;

var monthPattern = new Regex(@"(\d+)月([^火水木金土日])");
var monthRemover = new MatchEvaluator(mc => Enumerable.Range(1, 12).Contains(int.Parse(mc.Groups[1].Value)) ? mc.Groups[2].Value : mc.Value);
var inputText = "kok3月rq12月12461123456789月火水木金土";
var monthRemovedText = monthRegex.Replace(inputText, monthRemover);
81愛恥人
垢版 |
2018/02/05(月) 23:56:41.11
間違えた(>_<)
82愛恥人
垢版 |
2018/02/06(火) 00:14:56.39
2箇所(>_<)
2018/02/06(火) 01:21:47.08ID:PO3wsN6Da
普通に正規表現使えばいいのに…
[1-9]とか|とか1[0-2]とか
84デフォルトの名無しさん (ワッチョイ 9775-uWnk)
垢版 |
2018/02/06(火) 01:41:51.19ID:XGJpv/sv0
9999999月火水木金
2018/02/06(火) 02:00:35.27ID:ZfaRyY6g0
すみません、曜日ではなく年月の月なんです。
2018/02/06(火) 02:01:52.73ID:tiswDOzX0
数字が、1〜2回

\d{1,2}月
2018/02/06(火) 03:07:18.11ID:0D5TLInma
>>85
細かいけど、リーディングゼロとか、ゼロ以外の数が前にくっついてた場合
どう処理すべきかはっきりした方がいいかも
2018/02/06(火) 06:20:06.81ID:ZfaRyY6g0
>>78-87
アドバイスありがとうございます。
やってみます。
89デフォルトの名無しさん (ワッチョイ f7f7-NsDz)
垢版 |
2018/02/06(火) 08:01:18.07ID:eVD8eHcS0
var list_hoge = new List<Data_hoge>() {
new Data_hoge(){Key="1",Value=22 ,Flag=true},
new Data_hoge(){Key="2",Value=23 ,Flag=true},
new Data_hoge(){Key="3",Value=24 ,Flag=false},
new Data_hoge(){Key="4",Value=23 ,Flag=true},
};

この様なデータがあったときKeyに相当する引数(int=1〜4)を入れると
Flagがtrueのものの中でvalueが最大値を取るならtrueを返すメソッドを作りたいのですが
どうすればいいでしょうか?
LINQだと嬉しいです
90デフォルトの名無しさん (ワッチョイ f7f7-NsDz)
垢版 |
2018/02/06(火) 08:08:20.72ID:eVD8eHcS0
public bool saidaichidesu(int x)
{
var list_hoge = new List<Data_hoge>() {
new Data_hoge(){Key="1",Value=22 ,Flag=true},
new Data_hoge(){Key="2",Value=23 ,Flag=true},
new Data_hoge(){Key="3",Value=24 ,Flag=false},
new Data_hoge(){Key="4",Value=23 ,Flag=true},
};

var flaggedList_hoge = list_hoge.Where(data => data.Flag);
if (flaggedList_hoge.Count() > 0)
{
var maxValue = flaggedList_hoge.Max(data => data.Value);
この先どう書けばいいかわからない
}
return false;
}
91恥人
垢版 |
2018/02/06(火) 08:23:21.72
Keyに相当する引数の役割は?
92デフォルトの名無しさん (ワッチョイ f7f7-NsDz)
垢版 |
2018/02/06(火) 08:26:12.74ID:eVD8eHcS0
位置、座標の様なものになります
93恥人
垢版 |
2018/02/06(火) 08:32:59.69
最大値を持つ要素の中でKeyがxと一致するものを返したいということ?
94デフォルトの名無しさん (ワッチョイ f7f7-NsDz)
垢版 |
2018/02/06(火) 08:40:29.46ID:eVD8eHcS0
最大値をもっているもののkey(複数あり)がxと一致するかどうかを確認して、一致するならtrueを返したいです
keyがstringになっていますがこれをintにしても構いません
2018/02/06(火) 08:56:28.56ID:xtryCv8p0
こんな誰でもできることイチイチ人に聞いてるの?
96デフォルトの名無しさん (ワッチョイ 179d-jn1r)
垢版 |
2018/02/06(火) 10:10:37.94ID:vApM+tA70
寧ろ多くの人は解らんと思うが、、、先ずは質問の意味が正確に解るかどうかだな。
それが最大の問題だ。
「質問はすでにその中に解を含んでいる」、質問者が質問を正確に組み立てられないのは質問者の
責任として放置される性質のものではなくて、回答者の技量によって正確な質問に
組み立て直す。これは頭のいい回答者の責任になる。
でその役割りが君というわけだ。
97デフォルトの名無しさん (ワッチョイ 179d-jn1r)
垢版 |
2018/02/06(火) 10:21:16.59ID:vApM+tA70
saidaichidesu(1)  −−> False
saidaichidesu(2)  −−> true
saidaichidesu(3)  −−> false
saidaichidesu(4)  −−> true
saidaichidesu(その他)  −−> false
上の例ではこういうリターンを期待してる? もしこうであれば簡単だよ。
98デフォルトの名無しさん (ワッチョイ f7f7-NsDz)
垢版 |
2018/02/06(火) 10:55:56.66ID:eVD8eHcS0
>>97
はい!それと同じです!
99デフォルトの名無しさん (ワッチョイ 179d-jn1r)
垢版 |
2018/02/06(火) 11:26:06.22ID:vApM+tA70
           class Data_hoge{
               public            string Key;
               public            int Value;
               public            bool Flag;
           }
           public bool saidaichidesu(int x) 
           { 
                List<Data_hoge> list_hoge = new List<Data_hoge>() { 
                new Data_hoge(){Key="1",Value=22 ,Flag=true}, 
                new Data_hoge(){Key="2",Value=23 ,Flag=true}, 
                new Data_hoge(){Key="3",Value=24 ,Flag=false}, 
                new Data_hoge(){Key="4",Value=23 ,Flag=true}
                };

                var maxv = list_hoge.Where(dt => dt.Flag).ToList().Max(dt => dt.Value );
                var res = list_hoge.Where(dt => dt.Value == maxv).ToList();
                foreach (var dt in res)
                {
                    if (x == int.Parse(dt.Key))
                        return true;
                }
                return false;
           }     
100デフォルトの名無しさん (ワッチョイ 179d-jn1r)
垢版 |
2018/02/06(火) 11:28:45.34ID:vApM+tA70
苦戦した。w 一行では難しいな。もっといい方法があると思う。
101デフォルトの名無しさん (ワッチョイ 77d3-+DFt)
垢版 |
2018/02/06(火) 11:41:32.95ID:YagpYDjh0
たびたびお世話になります。
ラムダ式で作ったスレッドの優先度を変えるにはどのようにしたらよいのでしょうか。
Task sendTask = Task.Factory.StartNew(() => や
ThreadStart action = () =>
で作成したスレッドです。
102デフォルトの名無しさん (ワッチョイ f7f7-NsDz)
垢版 |
2018/02/06(火) 11:47:34.51ID:eVD8eHcS0
>>100
ありがとうございます!
2018/02/06(火) 11:54:00.12ID:WJaKumy6d
ThreadはいいとしてThreadPoolに優先度って設定出来たかしら?
104デフォルトの名無しさん (ワッチョイ 77d3-+DFt)
垢版 |
2018/02/06(火) 11:58:32.99ID:YagpYDjh0
すみません、101ですが
Threadだけでも良いです。
Taskは優先度の概念?がなさそうですね。
2018/02/06(火) 12:03:58.25ID:PO3wsN6Da
いつから初心者の質問に初心者が答えるスレになったんだ


厳しいことを言うようだけどコードレベルも一般に全然届いてない
それは参考にならない
2018/02/06(火) 12:28:02.63ID:WJaKumy6d
>>104
手元に確認するための環境無いから試せないんだけど、作成したThreadStartデリゲートをThreadクラスに食わせてPriority プロパティを設定してスタートで行けるはず。

Thread.Priority プロパティは以下のリンクで
https://msdn.microsoft.com/ja-jp/library/system.threading.thread.priority(v=vs.110).aspx
107デフォルトの名無しさん (オッペケ Srcb-ggKF)
垢版 |
2018/02/06(火) 12:28:10.60ID:v2bC5kd9r
>>105
ずっとそうだけど君を含めて
2018/02/06(火) 12:48:41.43ID:gO1cIWGHa
>>90
なんかよー分からんけど、

public bool IsMax(string key)
{
  var hogeList = new List<Data_hoge>()
  {
    new Data_hoge(){Key="1",Value=22 ,Flag=true},
    new Data_hoge(){Key="2",Value=23 ,Flag=true},
    new Data_hoge(){Key="3",Value=24 ,Flag=false},
    new Data_hoge(){Key="4",Value=23 ,Flag=true},
  };
  var max = hogeList.Max(x => x.Flag ? Value :Int32.MinValue);
  return hogeList.Any(x => x.Fkag && x.Key == key && x.Value == max);
}
試してないけどこんな感じでいける気が

しかし、>>89の日本語は酷すぎる
何を言ってるのかさっぱり分からない
2018/02/06(火) 12:58:23.10ID:YagpYDjh0
>>106
ありがとうございます。
確認してみます。
2018/02/06(火) 13:33:21.39ID:faPlxNmlM
hogeList.Where(_hoge => _hoge.Flag).GroupBy(_hoge => _hoge.Value)
.OrderByDescending(_group => _group.Key).First()
.Any(_hoge => _hoge.Key == key)
111愛恥人
垢版 |
2018/02/06(火) 13:48:39.64
// 指定したキーのデータが最大値を持つか
public bool hasMax(list<Data_hoge> list, int key)
{
// フラグが立っているデータの抽出
var flaggedList = list.Where(data => data.Flag == true);

// リストの最大値
var maxValue = flaggedList.Max(data => data.Value);

// 最大値を持つデータの抽出
var maxDataList = flaggedList.Where(data => data.Value == maxValue);

// 指定されたキーのデータが存在するか
var hasMaxValue = maxDataList.Any(data => data.Key == key);

return hasMaxValue;
}

これは悪いソースですか?それとも普通ですか?
112デフォルトの名無しさん (ワッチョイ 179d-jn1r)
垢版 |
2018/02/06(火) 14:02:52.39ID:vApM+tA70
素晴らしい。よくわかる。良いソースリストの鏡。★★★★。
インデントがついていたらもひとつおまけした。
113デフォルトの名無しさん (ワッチョイ 179d-jn1r)
垢版 |
2018/02/06(火) 14:08:14.50ID:vApM+tA70
★★★★
 var max = hogeList.Max(x => x.Flag ? Value :Int32.MinValue);
  return hogeList.Any(x => x.Fkag && x.Key == key && x.Value == max);

評:素晴らしい。1行目のMinValueの使い方がおもしろい。工夫があってなお且つ分かりやすくシンプル。
114デフォルトの名無しさん (ワッチョイ 179d-jn1r)
垢版 |
2018/02/06(火) 17:02:57.89ID:vApM+tA70
★★★★
return list_hoge.Where(_hoge => _hoge.Flag).GroupBy(_hoge => _hoge.Value)
.OrderByDescending(_group => _group.Key).First()
.Any(_hoge => _hoge.Key == xKey.ToString ());
評:Keyでオーダーしたら絶対に動かないだろ。w と思ったが念のため試してみたら動いた。
 _group.KeyのKeyは実はValueをKeyにしてグループ分けしているのでKeyはHohgeのKeyではなくて
 HogeのValueと同じになる。初心者には難解過ぎるので★一つ減らす。
2018/02/06(火) 17:35:28.55ID:gO1cIWGHa
レーティングスレになってるしw

>>111
ネタの人っぽいけど、それは普通にいろいろ悪いw
一番の害悪はコメント。
116デフォルトの名無しさん (ワッチョイ 179d-jn1r)
垢版 |
2018/02/06(火) 17:51:59.65ID:vApM+tA70
//0〜9までの配列
var array = Enumerable.Range(0, 10).ToArray();

これと同じようにラベルのリストをつくりたいのだが、うまく行かない。どうしたらいい?
こんな感じだとおもうんだが。
List<Label> lblList = Enumerable .Range (0,10).Select (d => new Label (){ Text = d.ToString ()});
2018/02/06(火) 18:04:54.61ID:LQXeAkyIM
>>116
お前は一年間Linqを使わないで普通にコード書け
Linq使うと上達から遠ざかる
2018/02/06(火) 18:09:27.95ID:LQXeAkyIM
馬鹿な初心者の例

エラー内容を読まない
質問するときも上手くいかないなどあいまいな言葉しか使わない
119デフォルトの名無しさん (ワッチョイ 179d-jn1r)
垢版 |
2018/02/06(火) 18:29:23.79ID:vApM+tA70
>>116
自己解決!!
120デフォルトの名無しさん (ワッチョイ f7f7-NsDz)
垢版 |
2018/02/06(火) 19:15:12.35ID:eVD8eHcS0
みなさんありがとうございます
全部参考にさせて頂きます
anyの使い方を知りませんでした
初心者的には>>111が一番わかりやすかったです
私の書いたコードを流用してくれているからだと思いますが
他の例の様にエレガントなコードを書けるように精進します
121デフォルトの名無しさん (ワッチョイ 179d-jn1r)
垢版 |
2018/02/06(火) 20:28:32.37ID:vApM+tA70
private void test3()
{
    List<Label> dev=Enumerable.Range(0, 10).Select(d=>new Label() { Name="Label" + d.ToString() }).ToList();
    List<string> strdt=Enumerable.Range(0, 10).Select(d=>"--" + d.ToString() + "--" ).ToList();

    dev.Zip(strdt, (x, y)=> x.Text=y);
    Debug.Print("--------------------------------");
    foreach (var a in dev)
    {
        Debug.Print(a.Name + ":" + a.Text);
    }
}
これが動かない。同じ単純なアレイどおしなら問題なく動くと思うが、この場合は
色々やってみたがわからない。ZIPの後にForeachをかけるという
意見があったが、どうやって? マージした後にForeachかけるにはベクトルのコレクションを
返す必要がある。その方法が分からない。
2018/02/06(火) 20:32:12.84ID:wUppZDmPM
以下のコードを実行すると
array[index]へのアクセスで
out of range exceptionがでます
何故index==numItemsという状態が起こるのでしょうか?


for (var i = 0; i < numItems; i++)
{
task[i] = new Task(() =>
{
var index = i;
foreach ()
{
array[index]にアクセス
}
});
task[i].Start();
while((int)task[i].Status < (int)TaskStatus.Running)
{
Console.WriteLine(i+"\t"+task[i].Status);
}
Console.WriteLine(i + "\t" + task[i].Status);
}
2018/02/06(火) 20:47:55.13ID:ori7vw+Ya
>>121
何がしたいの?
動かないって言われてもエスパーじゃないんで...
2018/02/06(火) 20:50:18.07ID:ori7vw+Ya
っていうか、
>dev.Zip(strdt, (x, y)=> x.Text=y);
ここのラムダ式の戻り値はyになるんだけど、これは意図してるのか勘違いなのか...
125デフォルトの名無しさん (ワッチョイ 179d-jn1r)
垢版 |
2018/02/06(火) 20:57:00.40ID:vApM+tA70
>動かないって言われてもエスパーじゃないんで...

int count = 0;
dev.ForEach(x => x.Text = strdt[count++]);

やりたいのはこれと同じこと。これは動作する。
126デフォルトの名無しさん (ワッチョイ 179d-jn1r)
垢版 |
2018/02/06(火) 21:07:22.14ID:vApM+tA70
>>dev.Zip(strdt, (x, y)=> x.Text=y);
>ここのラムダ式の戻り値はyになるんだけど、これは意図してるのか勘違いなのか...

ここの意図はdevがLabelのコレクションだからxはそのラベルの一個を取り出す。
yはsrtdtがstringコレクションだからyはその一つの要素
x.Text=y
はラベルのテキストにストリングyを代入すること。
ラムダ式の戻り値はyになるんか? でもラベルにyをセットするのが目的だから戻り値は関係ないはず。

var retval = dev.Zip(strdt, (x, y) => x.Text = y);
Debug.Print("--------------------------------" + retval);
foreach (var a in dev)
{
Debug.Print(a.Name + ":" + a.Text);
}
戻り値をretvalに入れてプリントしたらこんなになってる。
--------------------------------System.Linq.Enumerable+<ZipIterator>d__61`3[System.Windows.Forms.Label,System.String,System.String]
Label0:
Label1:
Label2:
Label3:
Label4:
Label5:
Label6:
Label7:
Label8:
Label9:
127デフォルトの名無しさん (ワッチョイ 179d-jn1r)
垢版 |
2018/02/06(火) 21:10:54.60ID:vApM+tA70
--------------------------------
Label0:--0--
Label1:--1--
Label2:--2--
Label3:--3--
Label4:--4--
Label5:--5--
Label6:--6--
Label7:--7--
Label8:--8--
Label9:--9--
これが期待値
128デフォルトの名無しさん (アウアウエー Sadf-VW3n)
垢版 |
2018/02/06(火) 21:16:50.87ID:lO9x2Jqya
>>125
だったら最初からこれでいいのでは?知らんけど
List<Label> dev=Enumerable.Range(0, 10).Select(d=>new Label() {Name="Label" + d,Text = String.Format("--{0}--", d)}).ToList();

質問する前にもうちょっと自分で頭使って考えた方がいい気がするw
2018/02/06(火) 21:19:36.18ID:vvoO9Mxfa
隔離スレが必要なのでは?
2018/02/06(火) 21:20:12.19ID:ori7vw+Ya
なぜか専用ブラウザから書き込めなかったのでChromeから書き込んだけど、
これだけでワッチョイって変わるんだね知らんかった
2018/02/06(火) 21:24:21.16ID:vvoO9Mxfa
ここ数日の流れでわかったと思うけど
自前のアプリが完成するまでずっとこの人は何かコード書くたびに質問してくると思うけど
それでいいのかな?
2018/02/06(火) 21:26:28.75ID:mrlUPoTy0
質問じゃなく承認欲求のための報告
連続してどうでもいいことまで書き込んだり質問する
今までも割といたタイプ
2018/02/06(火) 21:33:07.27ID:ori7vw+Ya
>>128
今は補完文字列が使えるんだったね...
最近コード書いてないからもう忘れてた
134恥人
垢版 |
2018/02/06(火) 21:36:56.00
>>115
ネタじゃないです(>_<)
ダメな点を教えてください(>_<)
2018/02/06(火) 21:41:08.26ID:xtryCv8p0
>>131
ウザいよね
目的の処理自体は作成できるくせに
聞いてくるなんてキチガイだよね
136デフォルトの名無しさん (ワッチョイ 179d-jn1r)
垢版 |
2018/02/06(火) 21:44:25.92ID:vApM+tA70
>>128
ZIPの理解が目的なんでな。w
2018/02/06(火) 21:52:36.71ID:vvoO9Mxfa
>>134
横からだけど
いくつか気になるところがあるけど

とりあえず最後の二つの操作をよ〜く見て動作を考えてみたらいいのでは?

var maxDataList = flaggedList.Where(data => data.Value == maxValue);
var hasMaxValue = maxDataList.Any(data => data.Key == key);
138愛恥人
垢版 |
2018/02/06(火) 21:53:01.64
>>121
自分が言ったのはこういうことです(>_<)
匿名クラスを使ってます
var marged = dev.Zip(strdt, (x, y) => {Label=x, Text=y});
marged.ForEach(item => item.Label.Text = item.Text);
2018/02/06(火) 21:54:49.64ID:vvoO9Mxfa
>>136
理解が目的なら挙動をテストするコード書けばいい
どこかの記事をコピーして実行
そして徐々に変えていって仕組みを理解したらいい
140愛恥人
垢版 |
2018/02/06(火) 21:58:11.36
>>137
意図した動作にならないという意味でしょうか、それともひとまとめにできるという意味でしょうか(>_<)
後者の場合は、一行づつで簡単な意味しか持たないほうが良いと思いすべて分離したのですがまとめまくったほうが良いのでしょうか(>_<)
2018/02/06(火) 22:12:46.39ID:ori7vw+Ya
>>134
ネタにしか思えんけどw

コメントも余分な一時変数も可読性に寄与しないどころか悪くしかしてないと思う。
好みの問題じゃないと思うけどな
こっちの方が読みやすいでしょ
public bool hasMax(list<Data_hoge> list, int key)
{
  var flaggedList = list.Where(data => data.Flag);
  var maxValue = flaggedList.Max(data => data.Value);
  return flaggedList.Any(x => x.Key == key && x.Value == maxValue);
}
142愛恥人
垢版 |
2018/02/06(火) 22:13:47.78
>>141
ありがとうございます(>_<)
今後の基準にします(>_<)
2018/02/06(火) 22:14:50.74ID:ori7vw+Ya
>>136
その割にZIPの本来の使い方してないじゃんw
意味が分からないよ
2018/02/06(火) 22:18:48.00ID:vvoO9Mxfa
もともと条件がふわっとしてるからまあ適当でいいよ
条件をつめて(keyがユニークなのかなど…)行くと普通こういうコードは書かないと思う
2018/02/06(火) 22:21:05.28ID:miclds150
>>141
元ネタからそうだけど、メソッドはパスカル記法(先頭大文字)で。
146愛恥人
垢版 |
2018/02/06(火) 22:21:37.74
>>144
一行づつで一つの意味しか持たないレベルに分解するのはやりすぎということでしょうか(>_<)
ありがとうございました。
147愛恥人
垢版 |
2018/02/06(火) 22:22:53.83
>>145
確かにそうするべきでした(>_<)
ありがとうございます。
2018/02/06(火) 22:24:39.50ID:ori7vw+Ya
>>136
ああついでに言っとくと、あなたはたぶん

(1) 列挙を行うオブジェクトを返すこと
(2) 列挙を行うこと

この二つを混同してるんだろうね。
LINQは前者であって後者じゃないのよ。
2018/02/06(火) 22:26:05.95ID:T+4erG1sd
匿名関数なんてパインソのリスト内包表記とかでイメージつかまないとムズいよ?
それになぜそんなにリンクにこだわるのか
いまの時代にカッコつけてスーツに肩パッドいれてる人みたい
要するにカッコつけかたミスってるよ
2018/02/06(火) 22:26:42.07ID:vvoO9Mxfa
>>146
深入りしなくてもいいけど
そのコードともとの2行のコードは結果は同じだけど
ロジックによる動きを追っていくと違いが判ると思う
151デフォルトの名無しさん (ワッチョイ 179d-jn1r)
垢版 |
2018/02/06(火) 22:27:51.04ID:vApM+tA70
>>138
いい線行きました。!!!
  var marged = dev.Zip(strdt, (x, y) => new {lbl = x, txt = y} );
  foreach (var aa in marged ){
    aa.lbl.Text = aa.txt;
  }
これで動作してますが、Foreachはmargedにメソッドがでてこない。
2018/02/06(火) 22:32:31.84ID:Ss12EoFr0
みんなよく構ってるな
153デフォルトの名無しさん (ワッチョイ 179d-jn1r)
垢版 |
2018/02/06(火) 22:36:21.97ID:vApM+tA70
>>138
できました。解決。ありがとう。
154愛恥人
垢版 |
2018/02/06(火) 22:40:30.16
>>149
LINQは手続き型(?)よりも簡単で良いと思っていたのですが勘違いだったのですね(>_<)
参考にします(>_<)

>>150
元の2行のコードというものが分からないです(>_<)
すみません。

>>151
列挙型にForEachがないみたいですね(>_<)
ごめんなさい(>_<)
155デフォルトの名無しさん (ワッチョイ 179d-jn1r)
垢版 |
2018/02/06(火) 22:56:56.00ID:vApM+tA70
>この二つを混同してるんだろうね。
>LINQは前者であって後者じゃないのよ。

折角のアドバイスにきつい言い方と思うかもしれないが、抽象的な説明よりも具体的に説明をすると
初心者には分かりやすい。あなたにも初心者の部下が沢山いるとおもうがそういうことを心掛けた方がいいと思う。
一番具体的なのは正しいコードで示すこと。
二番目はキーとなる概念が入った間違ったコード。(実際には正しいコードを空で書くのは、ベテランでも難しいからね)
3,4,がなくて5が説教。w
156デフォルトの名無しさん (ワッチョイ 179d-jn1r)
垢版 |
2018/02/06(火) 23:11:07.29ID:vApM+tA70
>それになぜそんなにリンクにこだわるのか

リンクに拘ってるのはもちろん初心者に最も理解しやすいからで、Zipにとくに拘ったのは
二つのシーケンスを同時に回せないと、一方でForeachを使いながら、同時にカウンターを
回すという不細工なことになるから。
2018/02/06(火) 23:36:29.47ID:ori7vw+Ya
>>155
なんか楽しい人だなw
158デフォルトの名無しさん (ワッチョイ 1716-uWnk)
垢版 |
2018/02/06(火) 23:38:39.75ID:zHDOWiCX0
なんだそのゴミレス...
2018/02/06(火) 23:38:57.77ID:vvoO9Mxfa
偉そうだな
わからないのが偉いのかな?
わからないのは自分の責任だと思うが

小学生の頃も学校の先生に文句言ってたんだろ
2018/02/06(火) 23:46:58.21ID:vvoO9Mxfa
回答者に対して具体的にコードを書かないといけないと言い出す初心者
モンスター質問者

自分で手を動かして試して考えられないならコードを書く意味なんてない
永遠に誰かに書いてもらえよ
ここでいくらコードを聞いても無駄だな
161デフォルトの名無しさん (ワッチョイ 174b-uWnk)
垢版 |
2018/02/06(火) 23:47:34.86ID:mI26xXvn0
必死やな。
2018/02/07(水) 01:20:10.99ID:7uLVnCRo0
わからないことを知っている
2018/02/07(水) 01:30:26.34ID:SevIc5yx0
ごちゃごちゃ言わずにスルースキルを鍛えろよ
最近はLINQコード書いたレスは全部NGブチ込んでる
こいつの質問超つまんないし
だいたい自分で作成できる処理について他人に質問するなんて気持ち悪いよ
164デフォルトの名無しさん (ワッチョイ 178d-uWnk)
垢版 |
2018/02/07(水) 01:41:27.68ID:Lh7Y15yl0
オッサンか。
2018/02/07(水) 01:43:34.31ID:LsMjQivz0
いいえjkです
2018/02/07(水) 05:11:16.76ID:DwLQBvRd0
早く人間になるか死ね
2018/02/07(水) 10:29:05.60ID:2q33vA06M
>>122 ですが自己解決しました。
Parallel.Forにしたら問題なく動きました。
2018/02/07(水) 12:29:01.11ID:5fPvfxRBM
>>167
.net4止まりの環境か?
なぜasync/await使わないんだ?
2018/02/07(水) 12:37:35.45ID:REKIkbBWM
>>168
asyncとParallelは役割が違う
Parallelはデータ並列の同期処理
2018/02/07(水) 12:43:07.80ID:ewbQvVlTd
>>169
よくコード見てみ
2018/02/07(水) 12:50:17.72ID:9H8pQbIza
>>170
TaskやめてParallel.Forにするなら意図通りに動作するし別におかしな処理ではないだろ
awaitしたら逐次処理になっちゃうぞ
2018/02/07(水) 12:53:02.46ID:9H8pQbIza
難を付けるとしたら、arrayの各要素に対する処理を並列化したいんだったらParallel.ForEachの方がいいな
2018/02/07(水) 17:10:10.88ID:IuIKj6k10
SVGを使いたくてNuGetからSVG2.3というのをインストールしたんですが
これってマニュアルみたいなものはないんですか?
とりあえずググってみて簡単な長方形とテキストは表示できたんですが
どうやって覚えたらいいんでしょうか
2018/02/07(水) 18:05:16.53ID:rtPEpBT7a
SVGが使いたいなら普通にSVGを勉強したらいいんじゃないの?

ここでHTMLの書き方について質問されてるのと変わりない
2018/02/07(水) 18:11:47.28ID:rtPEpBT7a
一般論として使い方のわからないライブラリがあるならNuGetに書いてあるオフィシャルサイトに
飛んでそこから調べる

最終更新が3年前とかだったら捨てる
2018/02/07(水) 19:06:14.35ID:w9LO8NrH0
Visual Studio Community 2017 を使って
特定のフォルダ「c:\hoge」以下のサブフォルダを列挙する
UWPアプリを作ろうとしています。

IEnumerable<string> subFolders = Directory.EnumerateDirectories(@"c:\hoge", "*", SearchOption.AllDirectories);

foreach (string subFolder in subFolders) {
MessageDialog md = new MessageDialog("");
md.Content = subFolder;
md.ShowAsync();
}

とすると
System.UnauthorizedAccessException:
'Access to the path 'c:\hoge' is denied.'
とのエラーとなります。

しかし、対象フォルダをデバッグビルドされるフォルダ
「C:\foo\bin\x64\Debug\AppX」にすると思った挙動となります。

デバッグビルドされる以外のフォルダにアクセスできるようにするには
どうすればいいでしょうか?
ちなみに Visual Studio を管理者権限で実行しても変わりませんでした。
以上、お知恵をお貸しください。よろしくお願いします。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況