хм. Я никогда не использовал VB.net ни в какой глубине, таким образом, я делаю предположение здесь, но я думаю, что блок 'использования' мог бы быть близко к тому, что Вы хотите.
использование определяет область действия блока для переменной, посмотрите, что примером ниже
using ( int temp = someFunction(param1) ) {
temp++; // this works fine
}
temp++; // this blows up as temp is out of scope here and has been disposed
Вот является статья от Microsoft, которая объясняет немного больше
РЕДАКТИРОВАНИЕ: да, этот ответ является неправильным - исходное предположение было неправильным. VB's 'С' больше похож на новые инициализаторы объекта C#:
var yourVariable = new yourObject { param1 = 20, param2 = "some string" };
Это выполнит работу с любым массивом и, вероятно, будет максимально оптимизировано для обработки общего случая (поиска дубликата в любом возможном массиве). Для более конкретных случаев (например, массивы, содержащие только строки) вы могли бы сделать лучше, чем это.
function hasDuplicate(arr) {
var i = arr.length, j, val;
while (i--) {
val = arr[i];
j = i;
while (j--) {
if (arr[j] === val) {
return true;
}
}
}
return false;
}
Если вы отсортируете массив, дубликаты будут рядом друг с другом, чтобы их было легко найти:
arr.sort();
var last = arr[0];
for (var i=1; i<arr.length; i++) {
if (arr[i] == last) alert('Duplicate : '+last);
last = arr[i];
}
Цикл останавливается при обнаружении первого дубликата:
function has_duplicates(arr) {
var x = {}, len = arr.length;
for (var i = 0; i < len; i++) {
if (x[arr[i]]) {
return true;
}
x[arr[i]] = true;
}
return false;
}
Изменить (исправить 'toString 'проблема):
function has_duplicates(arr) {
var x = {}, len = arr.length;
for (var i = 0; i < len; i++) {
if (x[arr[i]] === true) {
return true;
}
x[arr[i]] = true;
}
return false;
}
это будет исправлено для случая has_duplicates ([' toString ']); и т. д.