タグ付けされた質問 「c#」

C#(「seesharp」と発音)は、Microsoftによって開発された、静的に型指定された高レベルのマルチパラダイムプログラミング言語です。C#コードは通常、Microsoftの.NETファミリのツールとランタイムを対象としています。これには、.NET Framework、.NET Core、Xamarinなどが含まれます。このタグは、C#またはC#の正式な仕様で記述されたコードに関する質問に使用します。

7
C#のランダムな日付
1995年1月1日から現在の日付までの間にランダムな日付を生成する、簡潔で最新のC#コードを探しています。 Enumerable.Rangeを利用するいくつかのソリューションは、どういうわけかこれをより簡潔にするかもしれないと考えています。
141 c#  datetime  random  date 

4
IGroupingの「Value」プロパティを取得します
私はのようなデータ構造を持っています public DespatchGroup(DateTime despatchDate, List<Products> products); そして私はやろうとしている... var list = new List<DespatchGroup>(); foreach (var group in dc.GetDespatchedProducts().GroupBy(i => i.DespatchDate)) { // group.Values is not correct... how do I write this? list.Add(new DespatchGroup(group.Key, group.Values); } IGroupingグループ内のデータレコードに実際にアクセスする方法がわからないので、私は明らかに理解していません。

3
引数として関数を渡すC#
数値微分を行う関数をC#で記述しました。次のようになります。 public double Diff(double x) { double h = 0.0000001; return (Function(x + h) - Function(x)) / h; } 次のように、任意の関数を渡すことができるようにしたいと思います。 public double Diff(double x, function f) { double h = 0.0000001; return (f(x + h) - f(x)) / h; } これはデリゲートで可能だと思います(たぶん?)が、それらの使用方法はわかりません。 どんな助けでも大歓迎です。
141 c#  arguments 

10
順序が昇順でnullが最後であるnull列によるLINQ順序
製品のリストを価格でソートしようとしています。 結果セットでは、列ごとに価格の高いものから高いものまで製品をリストする必要がありますLowestPrice。ただし、この列はNULL可能です。 次のようにリストを降順に並べ替えることができます。 var products = from p in _context.Products where p.ProductTypeId == 1 orderby p.LowestPrice.HasValue descending orderby p.LowestPrice descending select p; // returns: 102, 101, 100, null, null しかし、これを昇順に並べ替える方法がわかりません。 // i'd like: 100, 101, 102, null, null
141 c#  linq  sorting 

10
前月の最初と最後の日の日付をC#で取得する
私は前月の初日と最終日を取得するような簡単な1つまたは2つのライナーを考えることはできません。 私は調査WebアプリをLINQ化していて、新しい要件を詰め込んでいます。 調査には、前月のすべてのサービスリクエストが含まれている必要があります。したがって、4月15日の場合、すべてのMarchesリクエストIDが必要です。 var RequestIds = (from r in rdc.request where r.dteCreated >= LastMonthsFirstDate && r.dteCreated <= LastMonthsLastDate select r.intRequestId); スイッチなしでは日付を簡単に考えることはできません。私が盲目で、それを行うための内部的な方法を見落としているのでない限り。
140 c#  .net  datetime  date 

17
Visual Studio 2015壊れたRazor Intellisense
VS2015インスタンスをインストールして修復した後も、MVCビューでintellisense(サーバー側)を機能させることができません。セッションで初めて.cshtmlファイルを開き、Activitylogファイルにアドレス指定されるとすぐに、メッセージプロンプトで警告が表示されます。ActivityLog.xml(短縮バージョン)で取得されたエラーメッセージ: System.ArgumentException:アイテムは既に追加されています。辞書のキー: 'RazorSupportedRuntimeVersion' ここにフルバージョンがあります: System.Reflection.TargetInvocationException:呼び出しのターゲットによって例外がスローされました。---> System.ArgumentException:アイテムは既に追加されています。辞書のキー: 'RazorSupportedRuntimeVersion'追加されるキー:System.Collections.Hashtable.Add(Object key、Object value)at System.Collections.Hashtable.Insert(Object key、Object nvalue、Boolean add)at System.Collections.Specialized.HybridDictionary.Add at 'RazorSupportedRuntimeVersion' (オブジェクトキー、オブジェクト値)Microsoft.VisualStudio.Utilities.PropertyCollection.AddProperty(Object key、Object property)at Microsoft.VisualStudio.Html.Package.Razor.RazorVersionDetector.Microsoft.Html.Editor.ContainedLanguage.Razor.Def.IRazorVersionDetector .GetVersion(ITextBuffer textBuffer)at Microsoft.Html.Editor.ContainedLanguage.Razor.RazorUtility.TryGetRazorVersion(ITextBuffer textBuffer、Version&razorVersion)at Microsoft.Html.Editor.ContainedLanguage.Razor.RazorErrorTagger..textBuffer-TextBuffer(TextBuffer)内部例外スタックトレース---システムで。System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr、Binderバインダ、Object []パラメータ、CultureInfoカルチャ)のSystem.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttrのRuntimeMethodHandle.InvokeMethod(Object target、Object [] arguments、Signature sig、Boolean constructor) 、バインダーバインダー、Object [] args、CultureInfoカルチャー、Object [] activationAttributes、StackCrawlMark&stackMark)at System.Activator.CreateInstance(Type type、BindingFlags bindingAttr、Binderinder、Object [] args、CultureInfoculture、Object [] activationAttributes)at System.Activator.CreateInstance(Type type、Object [] args)at Microsoft.Html.Editor.ContainedLanguage.Common.ContainedCodeErrorTaggerProvider'1.CreateTagger …

17
C#switchステートメントの制限-なぜですか?
switchステートメントを記述する場合、caseステートメントでオンにできるものには2つの制限があるように見えます。 たとえば、(そして、はい、私が知っている、あなたがこの種のことをしているなら、それはおそらくあなたのオブジェクト指向(OO)アーキテクチャが不審であることを意味します-これは単なる不自然な例です!)、 Type t = typeof(int); switch (t) { case typeof(int): Console.WriteLine("int!"); break; case typeof(string): Console.WriteLine("string!"); break; default: Console.WriteLine("unknown!"); break; } ここで、switch()ステートメントは「整数型の値が必要です」で失敗し、caseステートメントは「定数値が必要です」で失敗します。 なぜこれらの制限が設けられているのですか、そして根本的な正当化は何ですか?switchステートメントが静的分析のみに屈する必要がある理由や、スイッチがオンになっている値が整数(つまり、プリミティブ)でなければならない理由はわかりません。正当化とは何ですか?

2
ReSharperでC#6.0サポートを無効にする
ReSharperの使用中、「このプロジェクトでC#6.0サポートを有効にする」ことが推奨されていました。私はばかげてそれをクリックしました、そして今宣伝されているように、それは私にC#6.0の提案を与えています-そして私はこのプロジェクトでC#6.0を使用していないので私にエラーを与えます。 C#6.0サポートを無効にして、以前の状態に戻すにはどうすればよいですか?(できれば個別に特定の提案を無視する必要はありません)
140 c#  resharper 

1
TargetedPatchingOptOut:「NGen画像の境界を越えてインライン化するために重要なパフォーマンス」?
リフレクターを使用していくつかのフレームワーククラスを調べたところ、多くのメソッドとプロパティに次の属性があることがわかりました [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")] 上記のコメントをどこかで見たことがあり、フォローアップしたことはないと確信しています。 誰かがこれがC#およびその他のコンテキストで何を意味するか教えていただけませんか?

6
タイムゾーンをエレガントに扱う方法
アプリケーションを使用しているユーザーとは異なるタイムゾーンでホストされているWebサイトがあります。これに加えて、ユーザーは特定のタイムゾーンを持つことができます。他のSOユーザーとアプリケーションがこれにどのように取り組むかと思っていましたか?最も明白な部分は、DB内で日付/時刻がUTCに格納されることです。サーバー上では、すべての日付/時刻はUTCで処理する必要があります。しかし、私が克服しようとしている3つの問題を見つけました。 UTCでの現在の時刻の取得(で簡単に解決DateTime.UtcNow)。 データベースから日付/時刻を取得し、ユーザーに表示します。さまざまなビューで日付を印刷する呼び出しが潜在的にたくさんあります。この問題を解決できるビューとコントローラーの間にあるレイヤーを考えていました。または、カスタム拡張メソッドをオンにしますDateTime(以下を参照)。主な欠点は、ビューで日時を使用するすべての場所で、拡張メソッドを呼び出す必要があることです。 これにより、のようなものを使用するのも難しくなりJsonResultます。あなたはもはや簡単に呼び出すことができませんでしたJson(myEnumerable)、それはそうでなければなりませんJson(myEnumerable.Select(transformAllDates))。たぶん、AutoMapperはこの状況で役に立ちますか? ユーザーからの入力の取得(ローカルからUTC)。たとえば、日付を含むフォームをPOSTするには、日付を以前にUTCに変換する必要があります。最初に頭に浮かぶのは、カスタムの作成ModelBinderです。 以下は、ビューで使用することを考えた拡張機能です。 public static class DateTimeExtensions { public static DateTime UtcToLocal(this DateTime source, TimeZoneInfo localTimeZone) { return TimeZoneInfo.ConvertTimeFromUtc(source, localTimeZone); } public static DateTime LocalToUtc(this DateTime source, TimeZoneInfo localTimeZone) { source = DateTime.SpecifyKind(source, DateTimeKind.Unspecified); return TimeZoneInfo.ConvertTimeToUtc(source, localTimeZone); } } サーバーのローカル時刻が予想されるタイムゾーンと大きく異なる可能性がある多くのアプリケーションがクラウドベースになっていることを考えると、タイムゾーンの処理は非常に一般的なことだと思います。 これは以前にエレガントに解決されましたか?私が見逃しているものはありますか?アイデアや考えは大歓迎です。 編集:混乱を解消するために、もう少し詳細を追加すると思いました。問題は、今ではありませんどのようにそれがよりUTC->ローカルおよびローカルから> UTCから行くのプロセスについてです、デシベルでUTC時刻を格納します。@Max Zerbiniが指摘するように、ビューにUTC-> Localコードを配置するのは明らかに賢明ですが、DateTimeExtensions実際に答えを使用していますか?ユーザーから入力を受け取るとき、日付をユーザーのローカル時間として受け入れ(JSが使用しているModelBinderため)、それを使用してUTCに変換することは理にかなっていますか?ユーザーのタイムゾーンはDBに保存され、簡単に取得できます。

8
文字列内の特定の文字の後の文字を削除してから、部分文字列を削除しますか?
これが単純なようで、文字列/文字/正規表現にたくさんの質問があるとき、私はこれを馬鹿げた投稿のように感じますが、必要なものを十分に見つけることができませんでした(別の言語を除いて:特定のポイントの後にすべてのテキストを削除する)。 私は次のコードを持っています: [Test] public void stringManipulation() { String filename = "testpage.aspx"; String currentFullUrl = "http://localhost:2000/somefolder/myrep/test.aspx?q=qvalue"; String fullUrlWithoutQueryString = currentFullUrl.Replace("?.*", ""); String urlWithoutPageName = fullUrlWithoutQueryString.Remove(fullUrlWithoutQueryString.Length - filename.Length); String expected = "http://localhost:2000/somefolder/myrep/"; String actual = urlWithoutPageName; Assert.AreEqual(expected, actual); } 私は上記の質問の解決策を試しました(構文が同じであることを願っています!)まず、可変長のqueryStringを削除してから、ページ名を削除します。これも、任意の長さにすることができます。 このテストに合格するように、完全なURLからクエリ文字列を削除するにはどうすればよいですか?
140 c#  .net  string 

10
C#3.0以降のプロパティとフィールドの違い
StackаэтотвопросестьответынаStack Overflowнарусском:Длячегонужнысвойства? C#のフィールドとプロパティの違いは何ですか?しかし、私の質問には(私の観点から)若干の違いがあります: それを知ったら 「プロパティでのみ機能するテクニック」ではクラスを使用しません。 ゲッター/セッターでは検証コードを使用しません。 プロパティの設定におけるある種の制御のように、(スタイル/将来の開発のものを除いて)何か違いはありますか? 間に追加の違いはありますか: public string MyString { get; set; } そして public string myString; (最初のバージョンではC#3.0以降が必要であり、コンパイラーがプライベートフィールドを作成することを認識しています。)

17
フォーカスを盗まずにフォームを表示しますか?
フォームを使用して通知を表示しています(画面の右下に表示されます)が、このフォームを表示すると、メインフォームからフォーカスが奪われます。フォーカスを盗まずにこの「通知」フォームを表示する方法はありますか?
140 c#  .net  winforms 



弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.