I'm using the .NET System.Windows.Forms.DataVisualization.Charting types and want to assign a MarkerStyle to each Series I create preferably skipping MarkerStyle.None, but getting the next one each time and cycling around to the beginning again.  private MarkerStyle markers = new MarkerStyle();  public Series CreateSeries(string name) {     var s = chart1.Series.Add(name);     s.ChartType = SeriesChartType.Point;     s.MarkerSize = 7;     s.MarkerStyle = Cycle(markers ,MarkerStyle.None); // get next marker style     s.XValueType = ChartValueType.DateTime;     return s; }   I tried variations of the following code I found, all of which don't compile:  public static IEnumerable&lt;T&gt;Cycle&lt;T&gt;(IEnumerable&lt;T&gt; iterable,&lt;T&gt; skip) {     while (true)      {         foreach (T t in iterable)         {             if(t == skip)             continue;             yield return t;         }     } }   Gives error      CS0411. The type arguments for method   'MyClass.Cycle(System.Collections.Generic.IEnumerable)' cannot   be inferred from the usage. Try specifying the type arguments   explicitly.   Although I have a specific use it would be nice for a generic answer.  Edit: Having looked at the code above more closely and I see it was never going to work outside a foreach loop. Ho hum. Time to write a hack:  private int _markerIter = 0; private readonly int _markerCount = Enum.GetValues(typeof(MarkerStyle)).Length;  public MarkerStyle Cycle() {     if (_markerIter + 1 == _markerCount)     {         _markerIter = 1; //skips MarkerStyle.None which is == 0     }     else     {         _markerIter++;     }      return (MarkerStyle) _markerIter; }
1080
How can you enumerate an enum in C#?  E.g. the following code does not compile:  public enum Suit {     Spades,     Hearts,     Clubs,     Diamonds }  public void EnumerateAllSuitsDemoMethod() {     foreach (Suit suit in Suit)     {         DoSomething(suit);     } }   And it gives the following compile-time error:     'Suit' is a 'type' but is used like a 'variable'   It fails on the Suit keyword, the second one.
95496
I have a 2-dimensional array of objects and I basically want to databind each one to a cell in a WPF grid.  Currently I have this working but I am doing most of it procedurally.  I create the correct number of row and column definitions, then I loop through the cells and create the controls and set up the correct bindings for each one.    At a minimum I would like to be able to use a template to specify the controls and bindings in xaml.  Ideally I would like to get rid of the procedural code and just do it all with databinding, but I'm not sure that's possible.  Here is the code I am currently using:  public void BindGrid() {     m_Grid.Children.Clear();     m_Grid.ColumnDefinitions.Clear();     m_Grid.RowDefinitions.Clear();      for (int x = 0; x &lt; MefGrid.Width; x++)     {         m_Grid.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(1, GridUnitType.Star), });     }      for (int y = 0; y &lt; MefGrid.Height; y++)     {         m_Grid.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star), });     }      for (int x = 0; x &lt; MefGrid.Width; x++)     {         for (int y = 0; y &lt; MefGrid.Height; y++)         {             Cell cell = (Cell)MefGrid[x, y];                                  SolidColorBrush brush = new SolidColorBrush();              var binding = new Binding("On");             binding.Converter = new BoolColorConverter();             binding.Mode = BindingMode.OneWay;              BindingOperations.SetBinding(brush, SolidColorBrush.ColorProperty, binding);              var rect = new Rectangle();             rect.DataContext = cell;             rect.Fill = brush;             rect.SetValue(Grid.RowProperty, y);             rect.SetValue(Grid.ColumnProperty, x);             m_Grid.Children.Add(rect);         }     }  }
93626
I am trying to create an animation (in PowerPoint 2010) where I show one chart with some data, and I do some annotations on the chart itself (to highlight several parts of it). If I want to put many annotations the whole thing becomes messy while editing, because all of them are shown at the same time. So, it is even difficult to select individual annotations.  As an example, I include a picture showing the problem:    As you can see, there are two annotations. On the bottom, both text boxes are perfectly aligned so, it is difficult to individually select them. If, instead of two annotations, there are more than 5 or so, it becomes really difficult to work.  So, I was wondering whether there is any option that hides (while editing) all the objects belonging to the previous and following animation steps. I tried looking for such an option on the animation pane (on the right), but I could not find it.
80615
I am working on code generation and ran into a snag with generics. Here is a "simplified" version of what is causing me issues.  Dictionary&lt;string, DateTime&gt; dictionary = new Dictionary&lt;string, DateTime&gt;(); string text = dictionary.GetType().FullName;   With the above code snippet the value of text is as follows:   System.Collections.Generic.Dictionary`2[[System.String, mscorlib, Version=2.0.0.0,   Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.DateTime, mscorlib,   Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]   (Line breaks added for better readability.)  Is there a way to get the type name (type) in a different format without parsing the above string? I desire the following result for text:  System.Collections.Generic.Dictionary&lt;System.String, System.DateTime&gt;
40820
I have few methods that returns different Generic Lists.   Exists in .net any class static method or whatever to convert any list into a datatable? The only thing that i can imagine is use Reflection to do this.  IF i have this:  List&lt;Whatever&gt; whatever = new List&lt;Whatever&gt;();   (This next code doesn't work of course, but i would like to have the possibility of:  DataTable dt = (DataTable) whatever;
118728
I have a WPF ListView which repeats the data vertically. I cannot figure out how to make it repeat horizontally, like the slideshow view in Windows Explorer. My current ListView definition is:  &lt;ListView ItemsSource="{StaticResource MyDataList}" ItemTemplate="{StaticResource ListViewTemplate}"&gt; &lt;/ListView&gt;   The DataTemplate is (although I believe this should not matter);                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           &lt;Rectangle HorizontalAlignment="Stretch" Margin="0,1,0,0" x:Name="rectReflection" Width="Auto" Grid.Row="1" Height="30"&gt;                     &lt;Rectangle.Fill&gt;                         &lt;VisualBrush Stretch="None" AlignmentX="Center" AlignmentY="Top" Visual="{Binding ElementName=imgPhoto}"&gt;                             &lt;VisualBrush.RelativeTransform&gt;                                 &lt;TransformGroup&gt;                                     &lt;MatrixTransform Matrix="1,0,0,-1,0,0" /&gt;                                     &lt;TranslateTransform Y="1" /&gt;                                 &lt;/TransformGroup&gt;                             &lt;/VisualBrush.RelativeTransform&gt;                         &lt;/VisualBrush&gt;                     &lt;/Rectangle.Fill&gt;                     &lt;Rectangle.OpacityMask&gt;                         &lt;RadialGradientBrush GradientOrigin="0.5,1.041"&gt;                             &lt;RadialGradientBrush.RelativeTransform&gt;                                 &lt;TransformGroup&gt;                                     &lt;ScaleTransform CenterX="0.5" CenterY="0.5" ScaleX="1.202" ScaleY="2.865"/&gt;                                     &lt;SkewTransform AngleX="0" AngleY="0" CenterX="0.5" CenterY="0.5"/&gt;                                     &lt;RotateTransform Angle="0" CenterX="0.5" CenterY="0.5"/&gt;                                     &lt;TranslateTransform X="-0.002" Y="-0.491"/&gt;                                 &lt;/TransformGroup&gt;                             &lt;/RadialGradientBrush.RelativeTransform&gt;                             &lt;GradientStop Color="#D9000000" Offset="0"/&gt;                             &lt;GradientStop Color="#01FFFFFF" Offset="0.8"/&gt;                         &lt;/RadialGradientBrush&gt;                     &lt;/Rectangle.OpacityMask&gt;                 &lt;/Rectangle&gt;             &lt;/Grid&gt;         &lt;/Border&gt;     &lt;/DataTemplate&gt;
5259
Is there a guide out there on how to customize the enumerate and itemize instances in my code?  (I'm using the Memoir class in LaTeX for Windows, and I have the enumitem package included.)  I want to mess with the margins and spacings to make my lists look a little less "LaTeX-default"...
90280
I am using LWCs to display lightning cards in a list.  The list shows information about Programs.  Each Program card has a button, and this button needs to take the user to the 'new object' screen of the Application object.  Here is my code:   applyToProgram(event) {     // The recordTypeId is coming from the .html     // I have verified that the value is correct.     var rtId = event.target.id;      // How do I use rtId below?     this[NavigationMixin.Navigate]({         type: 'standard__objectPage',         attributes: {             objectApiName: 'Application__c',             actionName: 'new',             nooverride: '1',             recordTypeId: rtId  // This does not work         }     }); }   This is not working.  The user is presented with the 'new object' screen for the object's default record type and NOT the one specified in rtId.  I tried putting 'nooverride' and 'recordTypeId' in the state:{} argument, and I also renamed 'recordTypeId' to just 'recordType'.  None of these worked.  Can anyone help me with the correct syntax?  Is this even possible in LWCs?  Thanks, Jeff
98205
I am typesetting an ordered list where the entries may appear out of order, but should be assumed in order otherwise. I don't want to have to jump through \setcounter hoops to do this. That is, I want something like  \begin{enumerate}   \item First   \item Second   \item[8] Eighth!   \item Ninth!   \item[4] Fourth \end{enumerate}   to give the following Good output, instead of the Bad output:    A minimum working example follows.  \documentclass{article} \usepackage{enumitem} % preferably something compatible with this guy \begin{document}  Good:  \begin{enumerate}   \item[1.] First   \item[2.] Second   \item[8.] Eighth!   \item[9.] Ninth!   \item[4.] Fourth \end{enumerate}  Bad:  \begin{enumerate}   \item First   \item Second   \item[8] Eighth!   \item Ninth!   \item[4] Fourth \end{enumerate}  \end{document}   It should be noted that I don't want to have to specify the period afterwards, in case my list using a different numbering, e.g. Roman. Compatibility with enumitem is preferred, but not required.  What is the correct way of going about this?
58176
I was looking at C# collection initializers and found the implementation to be very pragmatic but also very unlike anything else in C#  I am able to create code like this:  using System; using System.Collections;  class Program {     static void Main()     {         Test test = new Test { 1, 2, 3 };     } }  class Test : IEnumerable {     public IEnumerator GetEnumerator()     {         throw new NotImplementedException();     }      public void Add(int i) { } }   Since I have satisfied the minimum requirements for the compiler (implemented IEnumerable and a public void Add) this works but obviously has no value.  I was wondering what prevented the C# team from creating a more strict set of requirements?  In other words why, in order for this syntax to compile, does the compiler not require that the type implement ICollection?  That seems more in the spirit of other C# features.
19412
I'm trying to create record Type selection screen in LWC, but getting this error  afterRender threw an error in 'c:createContact' [Cannot read property 'recordTypeInfos' of undefined]  HTML:  &lt;template&gt;     &lt;lightning-combobox name="recordType" label="Record Type" placeholder="Choose Status"                         value={value}                          options={recordTypeId}&gt;      &lt;/lightning-combobox&gt; &lt;/template&gt;   JS:  import { LightningElement, track, wire, api } from 'lwc'; import { getObjectInfo } from 'lightning/uiObjectInfoApi'; import CONTACT_OBJECT from '@salesforce/schema/Contact';  export default class CreateContact extends LightningElement {      @track statusOptions;     @track value;     @api objectApiName;      @track objectInfo;      @wire(getObjectInfo, { objectApiName: CONTACT_OBJECT,})     objectInfo;       get recordTypeId() {         // Returns a map of record type Ids          console.log(this.objectInfo);         const rtis = this.objectInfo.data.recordTypeInfos;         return rtis;     }  }
60784
I need to knock out a quick animation in C#/Windows Forms for a Halloween display.  Just some 2D shapes moving about on a solid background.  Since this is just a quick one-off project I really don't want to install and learn an entire new set of tools for this.  (DirectX dev kits, Silverlight, Flash, etc..)  I also have to install this on multiple computers so anything beyond the basic .Net framework (2.0) would be a pain in the arse.  For tools I've got VS2k8, 25 years of development experience, a wheelbarrow, holocaust cloak, and about 2 days to knock this out.  I haven't done animation since using assembler on my Atari 130XE (hooray for page flipping and player/missile graphics!)  Advice?  Here's some of the things I'd like to know:   I can draw on any empty widget (like a panel) by fiddling with it's OnPaint handler, right?  That's how I'd draw a custom widget.  Is there a better technique than this? Is there a page-flipping technique for this kind of thing in Windows Forms?  I'm not looking for a high frame rate, just as little flicker/drawing as necessary.   Thanks.  Post Mortem Edit ... "a couple of coding days later"  Well, the project is done.  The links below came in handy although a couple of them were 404.  (I wish SO would allow more than one reply to be marked "correct").  The biggest problem I had to overcome was flickering, and a persistent bug when I tried to draw on the form directly.   Using the OnPaint event for the Form: bad idea.  I never got that to work; lots of mysterious errors (stack overflows, or ArgumentNullExceptions).  I wound up using a panel sized to fill the form and that worked fine. Using the OnPaint method is slow anyway.  Somewhere online I read that building the PaintEventArgs was slow, and they weren't kidding.  Lots of flickering went away when I abandoned this.  Skip the OnPaint/Invalidate() and just paint it yourself.  Setting all of the "double buffering" options on the form still left some flicker that had to be fixed.  (And I found conflicting docs that said "set them on the control" and "set them on the form".  Well controls don't have a .SetStyle() method.)  I haven't tested without them, so they might be doing something (this is the form):      this.SetStyle(ControlStyles.UserPaint, true);     this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true);     this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);    So the workhorse of the code wound up looking like (pf is the panel control):      void PaintPlayField()     {         Bitmap bufl = new Bitmap(pf.Width, pf.Height);         using (Graphics g = Graphics.FromImage(bufl))         {             g.FillRectangle(Brushes.Black, new Rectangle(0, 0, pf.Width, pf.Height));             DrawItems(g);             DrawMoreItems(g);             pf.CreateGraphics().DrawImageUnscaled(bufl, 0, 0);         }     }   And I just called PaintPlayField from the inside of my Timer loop.  No flicker at all.
75761
I'd like to do the equivalent of the following in LINQ, but I can't figure out how:  IEnumerable&lt;Item&gt; items = GetItems(); items.ForEach(i =&gt; i.DoStuff());   What is the real syntax?
104904
I really should be able to get this, but I'm just to the point where I think it'd be easier to ask.  In the C# function:  public static T GetValue&lt;T&gt;(String value) where T:new() {    //Magic happens here }   What's a good implementation for the magic? The idea behind this is that I have xml to parse and the desired values are often primitives (bool, int, string, etc.) and this is the perfect place to use generics... but a simple solution is eluding me at the moment.  btw, here's a sample of the xml I'd need to parse  &lt;Items&gt;     &lt;item&gt;         &lt;ItemType&gt;PIANO&lt;/ItemType&gt;         &lt;Name&gt;A Yamaha piano&lt;/Name&gt;         &lt;properties&gt;             &lt;allowUpdates&gt;false&lt;/allowUpdates&gt;             &lt;allowCopy&gt;true&lt;/allowCopy&gt;         &lt;/properties&gt;        &lt;/item&gt;     &lt;item&gt;         &lt;ItemType&gt;PIANO_BENCH&lt;/ItemType&gt;         &lt;Name&gt;A black piano bench&lt;/Name&gt;         &lt;properties&gt;             &lt;allowUpdates&gt;true&lt;/allowUpdates&gt;             &lt;allowCopy&gt;false&lt;/allowCopy&gt;             &lt;url&gt;www.yamaha.com&lt;/url&gt;         &lt;/properties&gt;     &lt;/item&gt;     &lt;item&gt;         &lt;ItemType&gt;DESK_LAMP&lt;/ItemType&gt;         &lt;Name&gt;A Verilux desk lamp&lt;/Name&gt;         &lt;properties&gt;             &lt;allowUpdates&gt;true&lt;/allowUpdates&gt;             &lt;allowCopy&gt;true&lt;/allowCopy&gt;             &lt;quantity&gt;2&lt;/quantity&gt;         &lt;/properties&gt;     &lt;/item&gt; &lt;/Items&gt;
99253
I like how Java has a Map where you can define the types of each entry in the map, for example &lt;String, Integer&gt;.   What I'm looking for is a type of collection where each element in the collection is a pair of values.  Each value in the pair can have its own type (like the String and Integer example above), which is defined at declaration time.    The collection will maintain its given order and will not treat one of the values as a unique key (as in a map).    Essentially I want to be able to define an ARRAY of type &lt;String,Integer&gt; or any other 2 types.    I realize that I can make a class with nothing but the 2 variables in it, but that seems overly verbose.    I also realize that I could use a 2D array, but because of the different types I need to use, I'd have to make them arrays of OBJECT, and then I'd have to cast all the time.    I only need to store pairs in the collection, so I only need two values per entry.  Does something like this exist without going the class route?  Thanks!
26339
Is there some rare language construct I haven't encountered (like the few I've learned recently, some on Stack Overflow) in C# to get a value representing the current iteration of a foreach loop?  For instance, I currently do something like this depending on the circumstances:  int i = 0; foreach (Object o in collection) {     // ...     i++; }
44272
EDIT:  I found out that I can get it to compile if I cast the IMetadataType object to the TMetadata type.  Why do I need to do this?  EDIT #2:  The "Values" property is a .NET dictionary of type &lt;TMetadata, TData&gt;.  I have this generic method:  private void FillMetadata&lt;TMetadata, TData&gt;     (Metadata&lt;TMetadata, TData&gt; oMetadata) where TMetadata : IMetadataType {     IMetadataType o;     oMetadata.Values.Add(o, (TData)(object)GetValue()); }   I have stripped the implementation to simplify it (I actually use a real object, not the IMetadataType declared here).  My question is, why doesn't this compile?  The compile error is on the Add() method:  "cannot convert from 'IMetadataType' to 'TMetadata'."  Isn't that what the "where" clause on the method is for?  What am I missing?