Я согласен с тем, что использование join
, как показывает @torbonde, вероятно, самый хороший способ сделать это.
Если вы предпочитаете придерживаться базовых List
функций, то я думаю, что то, что у вас есть, вероятно, настолько хорошо, насколько это возможно. Одна небольшая настройка - заменить orElse
на defaultValue
:
let (v1,v2) = mapY |> Map.tryFind k |> Option.defaultValue ("","")
Еще одна вещь, которую я хотел бы рассмотреть, - нужны ли вам плоские кортежи - если вы были довольны вложением кортежей как на входе, так и на входе? со стороны вывода вы можете сделать что-то вроде этого (которое по сути все еще остается вашим исходным кодом, но немного короче):
let x = [(1,"x");(2,"y")]
let y = [(1, ("xx", "xxx"));(2,("yy","yyy"))]
let mapY = Map.ofSeq y
let r = x |> List.map (fun (k, v) ->
k, v, defaultArg (mapY.TryFind k) ("",""))
Разве вы не можете использовать атрибут DesignerCategory
для украшения своего класса?
При украшении вашего класса с помощью этого атрибута, как показано ниже, файл должен открываться в «представлении кода», когда вы дважды щелкаете по нему:
[System.ComponentModel.DesignerCategory("Code")]
public class MyComponent
{
}
Как уже упоминал в своем комментарии OregonGhost, это также происходит, если вы создаете частичный файл класса из формы.
Проблема еще хуже. Если вы посмотрите в файл своего проекта, вы можете найти записи для каждого файла, например, такие:
<Compile Include="FormMain.cs">
<SubType>Form</SubType>
</Compile>
. Поэтому решение должно состоять в том, чтобы удалить строку <SubType>...</SubType>
, потому что она кажется корнем всех проблемы. Но если вы удалите эту строку, сохраните файл, откройте его в Visual Studio, сохраните его снова и снова посмотрите, строка снова появится!
Кажется, в Visual Basic есть только одно жестко закодированное исключение Studio и это * .Designer.cs. Так что нет решения для решения этой проблемы.
Вы можете щелкнуть правой кнопкой мыши по исходному файлу, выбрать «Просмотр кода», а затем нажать «Установить по умолчанию». Это немного тупой инструмент, но если в вашем решении больше ложных компонентов, чем реальных компонентов, то вы можете найти его удобным.