Два трюка . В основном, инвертирование HTML-кода ваших желаемых элементов в HTML и использование ~
Оператора следующего сиблинга :
float-right
+ инвертирует порядок HTML элементы
div{ /* Do with the parent whatever you know just to make the
inner float-right elements appear where desired */
display:inline-block;
}
span{
float:right; /* float-right the elements! */
}
span:hover ~ span{ /* On hover target it's "previous";) elements */
background:red;
}
<div>
<!-- Reverse the order of inner elements -->
<span>5</span>
<span>4</span>
<span>3</span>
<span>2</span>
<span>1</span>
</div>
direction: rtl;
+ инвертирует порядок внутренних элементов
.inverse{
direction: rtl;
display: inline-block; /* inline-block to keep parent at the left of window */
}
span:hover ~ span{ /* On hover target it's "previous";) elements */
background:gold;
}
Hover one span and see the previous elements being targeted!<br>
<div class="inverse">
<!-- Reverse the order of inner elements -->
<span>5</span>
<span>4</span>
<span>3</span>
<span>2</span>
<span>1</span>
</div>
При использовании C# 3.0 (.NET 3.5) тогда, можно использовать инициализаторы набора. Они являются не совсем столь же краткими как в Ruby, но все еще улучшении.
Этот пример основан Пример MSDN
var students = new Dictionary<int, StudentName>()
{
{ 111, new StudentName {FirstName="Sachin", LastName="Karnik", ID=211}},
{ 112, new StudentName {FirstName="Dina", LastName="Salimzianova", ID=317, }},
{ 113, new StudentName {FirstName="Andy", LastName="Ruth", ID=198, }}
};
Когда я не в состоянии использовать C# 3.0, я использую функцию помощника, которая переводит ряд параметров в словарь.
public IDictionary<KeyType, ValueType> Dict<KeyType, ValueType>(params object[] data)
{
Dictionary<KeyType, ValueType> dict = new Dictionary<KeyType, ValueType>((data == null ? 0 :data.Length / 2));
if (data == null || data.Length == 0) return dict;
KeyType key = default(KeyType);
ValueType value = default(ValueType);
for (int i = 0; i < data.Length; i++)
{
if (i % 2 == 0)
key = (KeyType) data[i];
else
{
value = (ValueType) data[i];
dict.Add(key, value);
}
}
return dict;
}
Использование как это:
IDictionary<string,object> myDictionary = Dict<string,object>(
"foo", 50,
"bar", 100
);
extensions: [footnotes]
работы с Jekyll 2.2.0 (я don' t знают, когда это было добавлено, хотя),
– docwhat
12 August 2014 в 03:43
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Dictionary
{
class Program
{
static void Main(string[] args)
{
Program p = new Program();
Dictionary<object, object > d = p.Dic<object, object>("Age",32,"Height",177,"wrest",36);//(un)comment
//Dictionary<object, object> d = p.Dic<object, object>();//(un)comment
foreach(object o in d)
{
Console.WriteLine(" {0}",o.ToString());
}
Console.ReadLine();
}
public Dictionary<K, V> Dic<K, V>(params object[] data)
{
//if (data.Length == 0 || data == null || data.Length % 2 != 0) return null;
if (data.Length == 0 || data == null || data.Length % 2 != 0) return new Dictionary<K,V>(1){{ (K)new Object(), (V)new object()}};
Dictionary<K, V> dc = new Dictionary<K, V>(data.Length / 2);
int i = 0;
while (i < data.Length)
{
dc.Add((K)data[i], (V)data[++i]);
i++;
}
return dc;
}
}
}