Tips & Ticks by SAJJAD
Technology
C# implicit operator
Aug 20th
public class StringSafe
{
/// < summary>
/// Empty value
/// < /summary>
public const string Empty = "";
/// < summary>
/// String to StringSafe
/// < /summary>
/// < param name="data">object< /param>
/// < returns>< /returns>
public static implicit operator StringSafe(String data)
{
if (data == null)
return Empty;
return new StringSafe(data);
}
/// < summary>
/// StringSafe to String
/// < /summary>
/// < param name="data">object< /param>
/// < returns>< /returns>
public static implicit operator String(StringSafe data)
{
if (data == null)
return Empty;
return data.value;
}
private String value = Empty;
/// < summary>
/// Value
/// < /summary>
public String Value
{
get
{
if (this.value == null)
return Empty;
return this.value;
}
set
{
if (value == null)
this.value = Empty;
else
this.value = value;
}
}
/// < summary>
/// Create new instance of StringSafe
/// < /summary>
/// < param name="value">< /param>
public StringSafe(String value = Empty)
{
this.value = value;
}
}
Sample
public class Program
{
StringSafe sf = "SAJJAD";
MessageBox.Show(sf);
}
Anonymous Struct
Aug 18th
var Freinds = new[]
{
new { Name = "Ali", Age = 23 , Married = false },
new { Name = "Reza", Age = 43 , Married = true },
new { Name = "Ehsan", Age = 36 , Married = true },
new { Name = "Mahdi", Age = 34 , Married = false }
};
String Output = String.Empty;
foreach (var v in Freinds.Where(a => a.Married))
Output += "Name: " + v.Name + ", Age:" + v.Age + ";";
if (Output.Length > 0)
MessageBox.Show(Output.Substring(0, Output.Length - 1));
Recursive calculation with LinQ
Sep 19th
delegate int IntToInt(int i); static IntToInt Factorial = (n) => n <= 1 ? 1 : n * Factorial(n - 1);
LinQ in XML
Sep 16th
List< XElement> xs = XDocument
.Load("http://api.themoviedb.org/2.1/Movie.imdbLookup/en/xml/aba51da40c1f8931aab66cd91178a970/tt0137523")
.Element("OpenSearchDescription")
.Element("movies")
.Element("movie")
.Element("images")
.Elements()
.ToList();
xs
.ForEach(
a =>
{
if(a.Attribute("size").value == "poster" && (a.Attribute("type").Value.ToLower() == "poster" || a.Attribute("type").Value.ToLower() == "backdrop"))
{
// Code Here: a.Attribute("url").value
}
}
);
xs
.FindAll((a.Attribute("type").Value.ToLower() == "poster" || a.Attribute("type").Value.ToLower() == "backdrop") && a.Attribute("size").value == "poster"))
.ForEach(
a =>
{
// Code Here: a.Attribute("url").value
}
);
Recent Comments