c# - Shorter syntax for List construction -
with c# 6.0, given static method:
public static list<t> list<t>(params t[] items) => new list<t>(items);
and appropriate using
:
using static listtest.listutils;
i can use list
construct lists:
var lsint = list(10, 20, 30); var lsstr = list("abc", "bcd", "cde");
without list
method, construction can done via:
var lsintinitializer = new list<int>() { 10, 20, 30 };
the name list
being used both class , method. seems work fine, besides not being considered idiomatic, there technical reasons why shouldn't use list
method name here?
i can use list
, that's not idiomatic in different way, in methods tend capitalized.
note, have no problems going non-idiomatic route, if there's accepted practice in area, i'd know it.
of course, c# 6.0 using static
brave new world, perhaps there's not yet enough community experience around sort of thing.
the language-ext project uses similar approach construct immutablelist
objects. in case, use name list
.
an entire working example above excerpts taken shown below.
using system; using system.collections.generic; using static listtest.listutils; namespace listtest { public static class listutils { public static list<t> list<t>(params t[] items) => new list<t>(items); } class program { static void main(string[] args) { var lsint = list(10, 20, 30); var lsstr = list("abc", "bcd", "cde"); var lsintinitializer = new list<int>() { 10, 20, 30 }; lsint.foreach(console.writeline); lsstr.foreach(console.writeline); } } }
perhaps less confusing approach this:
public static class list { public static list<t> create<t>(params t[] items) => new list<t>(items); }
which call this:
var lsint = list.create(10, 20, 30);
(without using static
of course; importing class method named create
really confusing)
this same approach used immutable collections (immutablelist
, immutablearray
, etc)
Comments
Post a Comment